平安游戏《超级大小王》

游戏链接:http://game.wanlitong.com/?act=game_daxiaowang

一 socket通讯

1 游戏使用js原生开发。通讯使用socket.io。

2 游戏html页面定义通讯地址和token

 // socket 连接的地址
 GM.socketIoUrl_RJ = "https://activity.games.1768.com/";
 GM.token_RJ = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiI3MjU5Njc1NiIsImV4cCI6MTQ5NDczMTg1N30.DuoBBaJeQBRpsLnYaTWEXLb1tgMAyCXh9yHgb4BkL9E";
 GM.gameType = "1"; // 判断是否 需要添加socket处理游戏
 // 是否需要socket 支持
 GM.needAddSocket = GM.userLogged && GM.gameType === ‘1‘;

3 游戏通用js文件

http://h2.jkimg.net/game/js/v2/common-game.js?v=201704121801

连接socket

init:function(){
// 连接至游戏服务器
try{
	this._socket = window.io.connect(GM.socketIoUrl_RJ);
	this._router()
		.emit({
		cmd: ‘act::init‘
	});
}catch(e){
	GM.log(‘socket connect error‘);
}
	return this;
}

发送数据

// 发送命令
emit: function(data){
	data = data || {};
	var dataDefault ={
		params:{
			gameId: GM.gameId,
			token: GM.token_RJ
		}
	}
	$.extend(true, data, dataDefault);  //深度拷贝,将data和dataDefault合并
	data = JSON.stringify(data);
	GM.log(‘推送:‘+ data);
	this._socket.emit( ‘router‘, Base64.encode(data) );
        return this;
}

数据格式JSON, 协议{gameId, token, 其他数据, ...},将json转成字符串,然后用Base64加密后发送

接收数据

//接收命令
_router:function(){
	var self = this;
	// 通过 router 模块,监听服务器返回的数据
	self._socket.on(‘router‘, function(data) {
		data = Base64.decode(data);
		GM.log(‘接收:‘+ data);
		GM.log(‘‘);
		data = JSON.parse(data);
		var cmd = data.cmd;
		var res = data.res;
		switch(cmd){
			case ‘act::init‘:
				self._hanleData(res);
				break;
			default:
				break;
		}
	})
	.on(‘connect_error‘, function(data){
		GM.log(‘connect_error‘);
	});
	return this;
}

将data字符串用Base64解密,再还原成JSON,根据cmd将数据返回数据res分发处理。

  

  

  

时间: 2024-10-01 01:31:45

平安游戏《超级大小王》的相关文章

斗地主不算花色算大小王,起初发到的17张牌有多少种?

用动态规划算法来求,设dp[j]表示选了j张牌的种类数. 起初dp[j]=0(j>0),dp[0]=1. 第一层枚举牌的种类A?K,第二层倒着枚举当前选了j张(1=<j<=17),第三层dp[j]由dp[j?k]更新而来(1=<k<=4,j?k>=0). 如果大小王都不在,则有dp[17]种:如果大小王只有一个,则有dp[16]种:如果大小王都在,则有dp[15]种.所以ans=dp[17]+2×dp[16]+dp[15]. #include<cstdio>

项目总结之优化游戏包大小

DionysosLai2015/3/2 很多时候,渠道和发行都会向开发人员提出游戏包要压缩到XXMB一下的时候,对方的潜台词并不是让开发人员降低游戏质量来完成这个目标,而不是一定要保证质量的前提下,把包体压缩到极限范围.如果做不到对方要求,相信游戏的发布只能嘿嘿了.对于这个问题,大家可以关注知乎的一个问题"为什么现在做手游还要压缩游戏包的大小"? 对于游戏包的压缩方法,对各个游戏有很多特定的方法,大多数是通过资源的压缩达到目的.这里,提供一个比较通用的方法,通过修改库支持,移除不必要的

射击闯关游戏,旧王已死、新王当立?

射击类游戏的最佳形态是电子竞技?比如<穿越火线> 街机.单机时代的<魂斗罗>.<合金装备>等闯关型射击游戏体验,不再适合移动手游时代? 射击类游戏需要更真实.更热血,最好如昆丁塔伦蒂洛的电影一样,拳拳到肉.血浆横飞?比如<使命召唤>? 曾经占据游戏机.单机和联机游戏极大份额的射击游戏们,在移动时代只能扮演有益补充? 射击类游戏混的似乎不太好?不是没有缘故的,根本原因就是长期自由搏击,而忘记了,其实关卡才是最能吸引用户的所在? 关卡.关卡.关卡!你还在自由搏击

压缩游戏包大小的几个方法

压缩游戏包体的大小对于提升下载量有着巨大的帮助. 一般来说对于cocos2d-x编写的游戏我们主要通过几个步骤来压缩包体. 1.通过png 压缩工具 (PNGGauntlet 无损压缩),或者是通过 减色软件 进行有损压缩, jpg 通过减少质量来压缩 2.通过压缩so文件,去掉不须要的模块,或者是使用 NativeLibCompression (自己github上面搜索) 3.压缩icon和 proj.android/res 里面的图片(这一点非常多同学都会遗忘,包含对一些接入的sdk的图片也

Python学习-55 小游戏- 猜大小

#游戏开始,首先玩家选择大小,选择完成后开始摇骰子(11<=总值<=18为大,3<=总值<=10为小) import random def roll_dice(numbers=3,points=None): # 创建3个筛子numbers,创建点数points print('<<<<roll the dice!>>>>') if points is None: points = [] # 把点数放到一个空的列表里 while numb

骰王游戏

package come.one; import java.util.Scanner; public class One11 { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { //1.提示信息(欢迎语) System.out.println("*********欢迎来到骰王赌场*********"); //2.换筹码(充钱)————定义本金 System.out.

趁老王不在,和隔壁邻居斗斗地主,比比大小

这几天又空闲下来了,手痒痒,就想找隔壁邻居玩一玩斗地主,趁老王不在家,消遣下无聊的时光.现在但是每次在玩的时候,老是被邻居的穿着干扰到,我就在想是不是可以用python来搞一搞这个斗地主,然后让我专注在邻居身上,哦不,是邻居的牌身上. 基本规则 扑克牌一副由 54 张组成,含 3~A,2 各 4 张,小王 1 张,大王 1 张.牌面从小到大用如下字符和字符串表示(其中,小写 joker 表示小王,大写 JOKER 表示大王). 1.输入每手牌可能是个子,对子,顺子(连续5张),三个,×××(四个

开发日记:KBEngine+Unity+php做个扑克棋牌小游戏-DAY1

写这篇博客的时候其实我已经开发了一大部分了~ php 部分,unity 部分 都已经差不多了 ,由于KBEngine(简称kbe)完全没接触过,其实很多地方php部分的逻辑都可以直接挪到kbe中完成.实际为了开发效率,同样的逻辑目前我还是用php写起来飞快,因此项目的组成有一些小奇葩 现在正在琢磨kbe和 php 部分的衔接问题: 1.进入房间时,调用进入接口 /room/join 2.准备状态,调用接口 /game/prepare 3. a.当php检测到准备玩家数量 preparedPlay

换皮时代终结 《圣斗士星矢》背后的超级IP罗生门

<圣斗士星矢>IP纠纷案,或在一定程度上意味着,过去国内游戏公司惯用的旧有游戏+超级IP的换皮模式已告终结. 文 /张书乐 刊载于<法人>2016年11月刊 近日,北京海淀法院发布公告称,该院受理了一起手游<圣斗士星矢:重生>被诉侵权案,完美世界起诉纵游公司.蛙扑公司.指点公司和当乐公司在手游<圣斗士星矢:重生>的开发.运营和发行中侵权,索赔1000万元. 有意思的是,就在此前的9月20日,完美世界曾发表公告,称旗下手游<圣斗士星矢>将在10月3