玩过牌类游戏的人都知道,无论自己是在 房间里面有人的情况 还是没人的情况下 进入房间,那么自己所在的座位始终是屏幕的正面朝向。

如果按照座位编号来划分,可以把这个位置定义为0号位。当然这只是针对客户端而言,如果对于服务器来说,玩家进入的座位划分是按照先后顺序来的。

举个例子,玩家A在进入房间之前,房间内已有B,C两个玩家,那么玩家A在服务器端的座位号应该为2(座位按照0,1,2…),但是客户端应该始终显示玩家A的座位号位0号位,同理B,C依次作圆圈挪动位置。于是有下面的算法  :

AS3.0:

public static function parsePlayerSeat( sourceSeat:uint ):uint
{
var seatsCount:uint = 4;//当前房间座位的总数目(因不同的游戏而不同);

var mainPlayerSeat:uint = xx;//当前玩家原始座位号(即在服务器端的座位编号)
var newSeat:uint = ( sourceSeat + ( seatsCount – mainPlayerSeat) ) % seatsCount;
return newSeat;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Free Web Hosting