zoukankan      html  css  js  c++  java
  • Unity棋牌游戏入座,座位思路.

    假设入座玩家总人数为5个,自己的座位永远在下方记为1,玩家依次入座,顺序为2,3,4,5如图所示:

     此时我的座位下标索引为0,即游戏中都有MyUserId 的判断用来区分是否是自己,如果是自己的PosIndex永远取0.

    如果我入座的方位是2,那么就取第一个位置..此时视图所展示的情况应该如图:

    要保证自己视图永远在下方,那么就需要对应的更新坐标位置,并保证入座显示全部正常.

    故:当我的方位Direction = 2 (posIndex = 0),

    例1:如果此时有一个玩家入座到Direction = 4 (posIndex = 2)的方位上:

    玩家的方位Direction = 4  > 我的方位Direction = 2 (posIndex = 0)

    posIndex = 4 - 2 = 2,即 其他玩家的方位大于我的方位 otherDir > myDir  => posIndex = otherDir - myDir

    例2:如果此时有一个玩家入座到Direction = 1 (posIndex = 4)的方位上:

    玩家的方位Direction = 1   < 我的方位Direction = 2

    posIndex = 5(玩家总数) + 1(其他玩家Dir) - 2(我的Dir) = 4,即 其他玩家的方位小于我的方位 otherDir < myDir  => posIndex = playerCount + otherDir - myDir..

    伪代码如下:

     void Test(ServerMessage serverMsg,MyUserInfo myInfo)
        {
            int posIndex = -1;
            //坐标索引集合,5个玩家
            List<int> PosList = new List<int> {1, 2, 3, 4, 5};
            //测试代码,如果是自己,永远取第一个.
            if (serverMsg.userId == myInfo.userId)
            {
                posIndex = PosList[0];
            }
            else
            {
                //如果玩家方位大于自己的方位的话
                if (serverMsg.Direction > myInfo.dir)
                {
                    //直接用玩家的方位减去自己的方位即为玩家的头像位置
                    posIndex = PosList[serverMsg.Direction - myInfo.dir];
                }
                else
                {
                    //用玩家最大人数减去自己的方位再加上玩家的方位,即为玩家的位置
                    posIndex = PosList[PosList.Count - myInfo.dir + serverMsg.Direction];
                }
            }
        }
  • 相关阅读:
    [Angular2 Form] Build Select Dropdowns for Angular 2 Forms
    [Angular2 Form] Create Radio Buttons for Angular 2 Forms
    [Angular2 Router] Exiting an Angular 2 Route
    [Angular2 Router] Optional Route Query Parameters
    JS 实现地区,省份,城市,县区4级联动
    Linux web工程部署远程必备软件安装
    [置顶] 白话01背包
    APUE读书笔记-第17章-高级进程间通信
    UVA 10779 Collectors Problem(最大流)
    (二) win8+XAML Binding(数据绑定)
  • 原文地址:https://www.cnblogs.com/jbw752746541/p/13044030.html
Copyright © 2011-2022 走看看