代码改变世界

cocos2d-x JS 四人麻将中的服务器位置与客户端位置转换相关

2017-06-13 20:10  罗任德  阅读(888)  评论(0编辑  收藏  举报

 

前言:在写各类游戏编程中,都会遇到一个问题,就是位置问题,服务端的位置是与客户端的位置是不同的,这中间需要进行一个转化,客户端一套代码运行,不管是任何人登陆,该位置始终都是在屏幕正下方,所以这样就要进行一个转化,几乎棋牌类的游戏都会有这个问题。

下面是转化的一小段代码实例:


 1 var side = this.getSide(trueSide, this.myTrueSide);//调用一个方法,传入服务器的位置与客户端的位置
 2  
 3 
 4 getSide : function (trueSide, myTrueSide){//实现该方法
 5     switch (gm.PLAYERS_NUM){//循环游戏人数
 6         case 4://四人麻将
 7             var side = ((trueSide - myTrueSide) >= 0 ? (trueSide - myTrueSide): (trueSide - myTrueSide + 4));
 8             break;
 9         case 3://三人麻将
10             var side = ((trueSide - myTrueSide) >= 0 ? (trueSide - myTrueSide): (trueSide - myTrueSide + 4));
11             if (side==2){
12                 if (myTrueSide==2){
13                     side = 1;
14                 }else if (myTrueSide==0){
15                     side = 3;
16                 }
17             }
18             break;
19         case 2://两人麻将
20             var side = (trueSide- myTrueSide) ==0? 0 : 2;
21             break;
22     }
23     return side;//返回该位置
24 }