Ejemplo n.º 1
0
    private void Init(Sfs2X.Entities.User user_, GameObject go_, int modelIdx_, PlayerType pType_, string parseId_, string displayName_, int teamID_)
    {
        user            = user_;
        gameObject      = go_;
        playerType      = pType_;
        ModelIdx        = modelIdx_;
        ParseId         = (parseId_ == null) ? "" : parseId_;
        DisplayName     = (displayName_ == null) ? "" : displayName_;
        TeamID          = teamID_;
        InPrivateVolume = null;
        if (IsStealth)
        {
            ApplyAvatarOptions(GetAvatarOptionStr());
            Visible = false;
        }
        if (CameraMoveManager.Enabled)
        {
            SetNameBillboardCam(CameraMoveManager.Inst.Cam);
        }

        sitController = new SitController(this);

        // Check hardware info for changes.
        if (IsLocal)
        {
            string oldHardwareInfo = CommunicationManager.CurrentUserProfile.GetLocalHardwareInfo();
            CommunicationManager.CurrentUserProfile.UpdateLocalHardwareInfo();

            // If user's hardware has changed, send the new info to Parse.
            if (oldHardwareInfo != CommunicationManager.CurrentUserProfile.GetLocalHardwareInfo())
            {
                CommunicationManager.CurrentUserProfile.UpdateParseHardwareInfo();
            }
        }
    }
Ejemplo n.º 2
0
    public bool MoveTo(GameObject gameObject)
    {
        //List<GameObject> canMoves = getCanMove();
        //如果可以行走
        //if (canMoves.Contains(gameObject)) {
        //Debug.Log(gameObject.transform.position.y);
        Vector3 v3 = this.gameObject.transform.position;

        v3.x = gameObject.transform.position.x;
        v3.z = gameObject.transform.position.z;
        this.gameObject.transform.position = v3;
        SitController sit = gameObject.GetComponent <SitController>();

        sit.chessPieceObj = this.gameObject;

        string name = gameObject.name;

        chessPiece.x = Convert.ToInt16(name.Substring(0, 1));
        chessPiece.z = Convert.ToInt16(name.Substring(1, 1));


        sitController.chessPieceObj = null;
        sitController = sit;
        return(true);
        // }
        // return false;
    }
Ejemplo n.º 3
0
    public virtual void Start()
    {
        //获取到自己的坐标位置
        int x = chessPiece.x;
        int z = chessPiece.z;

        //Debug.LogFormat("初始化象棋,name={0},x={1},z={2}", this.gameObject.name, x, z);
        string name = x + "" + z;
        //根据座位获取到自己的位置
        GameObject go = GameObject.Find(name);

        transform.position = go.transform.position;
        //Debug.Log(name + "," + go.name);
        sitController = go.GetComponent <SitController>();
        sitController.chessPieceObj = this.gameObject;
        foreach (Transform tf in GetComponentsInChildren <Transform>())
        {
            if (tf.name.Equals("sprite"))
            {
                sprite = tf;
                break;
            }
        }

        skillCanvasController = GameObject.Find("skillCanvas").GetComponent <SkillCanvasController>();
        //System.Random r = new System.Random();
        frameNum = x + z;
        //Debug.Log("shui ji shu:" +frameNum);
    }
Ejemplo n.º 4
0
    protected override void Update()
    {
        ChairProperties component = SceneRefs.ActionSequencer.GetTrigger(GetTarget()).GetComponent <ChairProperties>();

        if (component != null)
        {
            LocomotionHelper.SetCurrentController <SitController>(GetTarget());
            LocomotionController currentController = LocomotionHelper.GetCurrentController(GetTarget());
            if (currentController is SitController)
            {
                SitController sitController = (SitController)currentController;
                sitController.SetChair(component);
            }
        }
        Completed();
    }
Ejemplo n.º 5
0
    public override List <GameObject> GetCanMove()
    {
        List <GameObject> result = new List <GameObject>();
        int x = chessPiece.x;
        int z = chessPiece.z;

        if (chessPiece.teamId == TeamID.HONG && z != 0)
        {
            //红兵向前行
            result.Add(GameObject.Find("" + x + (z - 1)));
        }
        else if (chessPiece.teamId == TeamID.HEI && z != 9)    //黑兵
        {
            result.Add(GameObject.Find("" + x + (z + 1)));
        }
        if (IsCross())
        {
            //如果不在最右侧
            if (x != 8)
            {
                //红兵向右行
                result.Add(GameObject.Find("" + (x + 1) + z));
            }
            //如果不在最左边
            if (x != 0)
            {
                result.Add(GameObject.Find("" + (x - 1) + z));
            }
        }

        //剔除掉己方已经占领的棋子
        result = result.FindAll(obj => {
            SitController sit = obj.GetComponent <SitController>();
            if (sit.chessPieceObj != null)
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId == chessPiece.teamId)
                {
                    return(false);
                }
            }
            return(true);
        });
        return(result);
    }
Ejemplo n.º 6
0
    public override List <GameObject> GetCanMove()
    {
        List <GameObject> result = new List <GameObject>();
        int x = chessPiece.x;
        int z = chessPiece.z;

        if (x == 4)
        {
            result.Add(GameObject.Find("" + (x + 1) + (z + 1)));
            result.Add(GameObject.Find("" + (x + 1) + (z - 1)));
            result.Add(GameObject.Find("" + (x - 1) + (z - 1)));
            result.Add(GameObject.Find("" + (x - 1) + (z + 1)));
        }
        else
        {
            if (chessPiece.teamId == TeamID.HEI)
            {
                result.Add(GameObject.Find("41"));
            }
            else
            {
                result.Add(GameObject.Find("48"));
            }
        }

        //剔除掉己方已经占领的棋子
        result = result.FindAll(obj => {
            SitController sit = obj.GetComponent <SitController>();
            if (sit.chessPieceObj != null)
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId == chessPiece.teamId)
                {
                    return(false);
                }
            }
            return(true);
        });

        return(result);
    }
Ejemplo n.º 7
0
    public override List <GameObject> GetCanMove()
    {
        List <GameObject> result = new List <GameObject>();
        int x = chessPiece.x;
        int z = chessPiece.z;

        if (x == 3 || x == 4)
        {
            result.Add(GameObject.Find("" + (x + 1) + z));
        }
        if (x == 5 || x == 4)
        {
            result.Add(GameObject.Find("" + (x - 1) + z));
        }

        if (z == 0 || z == 7 || z == 1 || z == 8)
        {
            result.Add(GameObject.Find("" + x + (z + 1)));
        }
        if (z == 2 || z == 9 || z == 1 || z == 8)
        {
            result.Add(GameObject.Find("" + x + (z - 1)));
        }
        //剔除掉己方已经占领的棋子
        result = result.FindAll(obj => {
            SitController sit = obj.GetComponent <SitController>();
            if (sit.chessPieceObj != null)
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId == chessPiece.teamId)
                {
                    return(false);
                }
            }
            return(true);
        });

        return(result);
    }
Ejemplo n.º 8
0
    private void onViewReady(AvatarBaseAsync view)
    {
        if (locomotionData == null)
        {
            return;
        }
        LocomotionTracker component = GetComponent <LocomotionTracker>();

        switch (locomotionData.LocoState)
        {
        case LocomotionState.Slide:
            if (component.IsCurrentControllerOfType <SlideController>())
            {
                GetComponent <Animator>().SetBool(AnimationHashes.Params.Slide, value: true);
                GetComponent <Animator>().Play(AnimationHashes.States.Slide.Enter, 0);
            }
            else
            {
                component.SetCurrentController <SlideController>();
            }
            break;

        case LocomotionState.Sitting:
        {
            if (!component.IsCurrentControllerOfType <SitController>())
            {
                component.SetCurrentController <SitController>();
            }
            SitController sitController = component.GetCurrentController() as SitController;
            if (sitController != null)
            {
                sitController.RemoteSit(null);
            }
            break;
        }
        }
    }
Ejemplo n.º 9
0
    public override List <GameObject> GetCanMove()
    {
        List <GameObject> result = new List <GameObject>();
        int x = chessPiece.x;
        int z = chessPiece.z;


        if (z != 5)
        {
            result.Add(GameObject.Find("" + (x + 2) + (z - 2)));
            result.Add(GameObject.Find("" + (x - 2) + (z - 2)));
        }
        if (z != 4)
        {
            result.Add(GameObject.Find("" + (x + 2) + (z + 2)));
            result.Add(GameObject.Find("" + (x - 2) + (z + 2)));
        }
        //剔除掉己方已经占领的棋子
        result = result.FindAll(obj => {
            if (obj == null)
            {
                return(false);
            }
            SitController sit = obj.GetComponent <SitController>();
            if (sit.chessPieceObj != null)
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId == chessPiece.teamId)
                {
                    return(false);
                }
            }
            return(true);
        });

        return(result);
    }
Ejemplo n.º 10
0
    public void ReceiveChessMove(RespMoveChess respMoveChess)
    {
        long       roleUid     = respMoveChess.roleUid;
        MoveChess  moveChess   = respMoveChess.moveChess;
        string     toSitName   = moveChess.toPoint.x + "" + moveChess.toPoint.z;
        GameObject toSit       = GameObject.Find(toSitName);
        string     fromSitName = moveChess.fromPoint.x + "" + moveChess.fromPoint.z;

        Debug.LogFormat("收到服务器移动信息,from={0},to={1}", fromSitName, toSitName);
        GameObject           fromSit       = GameObject.Find(fromSitName);
        SitController        sitController = fromSit.GetComponent <SitController>();
        GameObject           pickObject    = sitController.chessPieceObj;
        ChessPieceController pickCpc       = pickObject.GetComponent <ChessPieceController>();
        SitController        sitc          = toSit.GetComponent <SitController>();

        if (sitc.chessPieceObj != null)
        {
            //把该位置原来的棋子注销
            Destroy(sitc.chessPieceObj);
        }
        pickCpc.MoveTo(toSit);
        sitc.chessPieceObj = pickCpc.gameObject;
        ClearState();
    }
Ejemplo n.º 11
0
 // Update is called once per frame
 void Update()
 {
     OnReceive();
     if (goInfo == null)
     {
         return;
     }
     if (goInfo.currentTeamId != selfTeamId)
     {
         return;
     }
     if (Input.GetMouseButtonDown(0))
     {
         Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition); //camare2D.ScreenPointToRay (Input.mousePosition);
         RaycastHit hit;
         if (Physics.Raycast(ray, out hit))
         {
             GameObject tmp = hit.collider.gameObject;
             //判断选中的位置
             if ("Sit".Equals(tmp.tag))
             {
                 Debug.Log("选中位置,sit=" + tmp.name);
                 SitController sitController = tmp.GetComponent <SitController>();
                 //选中了一个空座位
                 if (pickCpc == null || sitController.chessPieceObj != null)
                 {
                     return;
                 }
                 else
                 {
                     if (sitController.chessPieceObj == null) //选中的位置没有棋子
                     {
                         if (sits.Contains(tmp))              //如果该位置可以走
                         {
                             MoveTo(tmp);
                         }
                     }
                 }
             }
             else if ("ChessPiece".Equals(tmp.tag))
             {
                 Debug.Log("选中棋子,name=" + tmp.name);
                 ChessPieceController cpc = tmp.GetComponent <ChessPieceController>();
                 if (pickCpc == null)
                 {
                     if (cpc.chessPiece.teamId == (TeamID)goInfo.currentTeamId)
                     {
                         Pick(cpc);
                     }
                 }
                 else
                 {
                     if (cpc == pickCpc)
                     {
                         ClearState();
                     }
                     else if (cpc.chessPiece.teamId == pickCpc.chessPiece.teamId)
                     {
                         ClearState();
                         Pick(cpc);
                     }
                     else
                     {
                         GameObject sitobj = cpc.sitController.gameObject;
                         if (sits.Contains(sitobj))
                         {
                             MoveTo(sitobj);
                         }
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 12
0
    public override List <GameObject> GetCanMove()
    {
        List <GameObject> result = new List <GameObject>();
        int x = chessPiece.x;
        int z = chessPiece.z;

        // 向前走
        if (z <= 7)
        {
            GameObject    sitObject     = GameObject.Find("" + x + (z + 1));
            SitController sitController = sitObject.GetComponent <SitController>();
            //查看是否有阻挡
            if (sitController.chessPieceObj == null)
            {
                sitObject = GameObject.Find("" + (x + 1) + (z + 2));
                if (sitObject != null)
                {
                    result.Add(sitObject);
                }
                sitObject = GameObject.Find("" + (x - 1) + (z + 2));
                if (sitObject != null)
                {
                    result.Add(sitObject);
                }
            }
        }
        //向后走
        if (z >= 2)
        {
            GameObject    sitObject     = GameObject.Find("" + x + (z - 1));
            SitController sitController = sitObject.GetComponent <SitController>();
            //查看是否有阻挡
            if (sitController.chessPieceObj == null)
            {
                sitObject = GameObject.Find("" + (x + 1) + (z - 2));
                if (sitObject != null)
                {
                    result.Add(sitObject);
                }
                sitObject = GameObject.Find("" + (x - 1) + (z - 2));
                if (sitObject != null)
                {
                    result.Add(sitObject);
                }
            }
        }
        //向左走
        if (x >= 2)
        {
            GameObject    sitObject     = GameObject.Find("" + (x - 1) + z);
            SitController sitController = sitObject.GetComponent <SitController>();
            //查看是否有阻挡
            if (sitController.chessPieceObj == null)
            {
                sitObject = GameObject.Find("" + (x - 2) + (z - 1));
                if (sitObject != null)
                {
                    result.Add(sitObject);
                }
                sitObject = GameObject.Find("" + (x - 2) + (z + 1));
                if (sitObject != null)
                {
                    result.Add(sitObject);
                }
            }
        }
        //向右走
        if (x <= 6)
        {
            GameObject    sitObject     = GameObject.Find("" + (x + 1) + z);
            SitController sitController = sitObject.GetComponent <SitController>();
            //查看是否有阻挡
            if (sitController.chessPieceObj == null)
            {
                sitObject = GameObject.Find("" + (x + 2) + (z - 1));
                if (sitObject != null)
                {
                    result.Add(sitObject);
                }
                sitObject = GameObject.Find("" + (x + 2) + (z + 1));
                if (sitObject != null)
                {
                    result.Add(sitObject);
                }
            }
        }
        //剔除掉己方已经占领的棋子
        result = result.FindAll(obj => {
            if (obj == null)
            {
                return(false);
            }
            SitController sit = obj.GetComponent <SitController>();
            if (sit.chessPieceObj != null)
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId == chessPiece.teamId)
                {
                    return(false);
                }
            }
            return(true);
        });
        return(result);
    }
Ejemplo n.º 13
0
    public override List <GameObject> GetCanMove()
    {
        List <GameObject> result = new List <GameObject>();
        int x = chessPiece.x;
        int z = chessPiece.z;

        //向右寻找
        for (int p = x + 1; p <= 8; p++)
        {
            GameObject    sitObject = GameObject.Find("" + p + z);
            SitController sit       = sitObject.GetComponent <SitController>();
            if (sit.chessPieceObj == null)
            {
                result.Add(sitObject);
            }
            else
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId != chessPiece.teamId)
                {
                    result.Add(sitObject);
                }
                break;
            }
        }
        //向左寻找
        for (int p = x - 1; p >= 0; p--)
        {
            GameObject    sitObject = GameObject.Find("" + p + z);
            SitController sit       = sitObject.GetComponent <SitController>();
            if (sit.chessPieceObj == null)
            {
                result.Add(sitObject);
            }
            else
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId != chessPiece.teamId)
                {
                    result.Add(sitObject);
                }
                break;
            }
        }
        //向上寻找
        for (int p = z - 1; p >= 0; p--)
        {
            GameObject    sitObject = GameObject.Find("" + x + p);
            SitController sit       = sitObject.GetComponent <SitController>();
            if (sit.chessPieceObj == null)
            {
                result.Add(sitObject);
            }
            else
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId != chessPiece.teamId)
                {
                    result.Add(sitObject);
                }
                break;
            }
        }
        //向下寻找
        for (int p = z + 1; p <= 9; p++)
        {
            GameObject    sitObject = GameObject.Find("" + x + p);
            SitController sit       = sitObject.GetComponent <SitController>();
            if (sit.chessPieceObj == null)
            {
                result.Add(sitObject);
            }
            else
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId != chessPiece.teamId)
                {
                    result.Add(sitObject);
                }
                break;
            }
        }
        return(result);
    }