private void Update()
    {
        // @request 위치 전달/수신
        Vector3       player1_pos = player1.transform.position;
        StructRequest request     = new StructRequest();

        request.uid                      = Const.UserData.uid;
        request.request_url              = URL.SyncMovement.ToString();
        request.parameter                = new Dictionary <string, string>();
        request.parameter["posX"]        = player1.gameObject.transform.position.x.ToString();
        request.parameter["posY"]        = player1.gameObject.transform.position.y.ToString();
        request.parameter["opponentUid"] = Const.UserData.opponentUid;

        void CallBack(StructRequest response)
        {
            if (!response.parameter.ContainsKey("opponentPosX"))
            {
                return;
            }

            // 받은 player2 위치 적용
            float      x        = float.Parse(response.parameter["opponentPosX"]);
            float      y        = float.Parse(response.parameter["opponentPosY"]);
            Vector3    next_pos = new Vector3(x, y, player2.transform.position.z);
            EDirection dir      = JUtils.GetDir(next_pos, player2.transform.position);

            player2.Move(dir);
            player2.transform.position = next_pos;
        }

        mNEt.SetCallBack(CallBack);
        mNEt.RequestMsg(request);
    }
Ejemplo n.º 2
0
    void AvoidOpponent(ref Dictionary <int, float> near_index_list)
    {
        Character  charac     = mCharacterManager.GetPlayer();
        EDirection dir        = JUtils.GetDir(this.transform.position, charac.transform.position);
        int        next_index = 0;

        switch (dir)
        {
        case EDirection.UP:
            next_index = mCurIndex - Const.TileCntX;
            break;

        case EDirection.Down:
            next_index = mCurIndex + Const.TileCntX;
            break;

        case EDirection.Right:
            next_index = mCurIndex - 1;
            break;

        case EDirection.Left:
            next_index = mCurIndex + 1;
            break;
        }

        int[] keys = new int[near_index_list.Count];
        near_index_list.Keys.CopyTo(keys, 0);
        int iCount = keys.Length;

        for (int i = 0; i < iCount; ++i)
        {
            near_index_list[keys[i]] += 1;
        }
        if (near_index_list.ContainsKey(next_index))
        {
            near_index_list[next_index] += -1f;
        }
    }