コード例 #1
0
 public override void Init()
 {
     currPos     = transform.position;
     baseYStage  = 0;
     playerState = MAP_PLAYER_STATE.MOVING;
     typePos     = TYPE_GV_POS.POS4;
     currGvStage = (GVStage)MapScreenManager.Instance.currMap.currStage;
     if (currGvStage == null)
     {
         Debug.Log("wtf");
     }
     sizeX = 0.4f;
     sizeY = 0.4f;
 }
コード例 #2
0
    public override void Tap()
    {
        if (playerState == MAP_PLAYER_STATE.MOVING)
        {
            playerState = MAP_PLAYER_STATE.JUMP;
            velocityY   = baseVelocityY;
            float currPosX = transform.position.x;

            int right = 0;
            int left  = 0;
            if (noStage == 1)
            {
                right = (int)(Mathf.Abs(6.4f - currPosX - 0.25f - 0.2f) / currGvStage.lengthSegment);
                left  = (int)(Mathf.Abs(6.4f - currPosX - 0.25f + 0.2f) / currGvStage.lengthSegment);
            }
            else
            {
                right = (int)(Mathf.Abs(currPosX + 6.4f + 0.25f + 0.2f) / currGvStage.lengthSegment);
                left  = (int)(Mathf.Abs(currPosX + 6.4f + 0.25f - 0.2f) / currGvStage.lengthSegment);
            }

            if (right < currGvStage.listTypeGVSegment.Length)
            {
                float destY = 0;
                if (right == left)
                {
                    TYPE_GV_SEGMENT currTypeSegment = currGvStage.listTypeGVSegment[right];

                    if (typePos == TYPE_GV_POS.POS1)
                    {
                        if (currTypeSegment == TYPE_GV_SEGMENT.LANE12 || currTypeSegment == TYPE_GV_SEGMENT.LANE123 || currTypeSegment == TYPE_GV_SEGMENT.LANE2 || currTypeSegment == TYPE_GV_SEGMENT.LANE23)
                        {
                            // move to pos 2
                            typePos = TYPE_GV_POS.POS2;
                        }
                        else
                        {
                            // move to pos 4
                            typePos = TYPE_GV_POS.POS4;
                        }
                    }
                    else if (typePos == TYPE_GV_POS.POS2)
                    {
                        // move to pos 1
                        typePos = TYPE_GV_POS.POS1;
                    }
                    else if (typePos == TYPE_GV_POS.POS3)
                    {
                        // move to pos 4
                        typePos = TYPE_GV_POS.POS4;
                    }
                    else if (typePos == TYPE_GV_POS.POS4)
                    {
                        if (currTypeSegment == TYPE_GV_SEGMENT.LANE23 || currTypeSegment == TYPE_GV_SEGMENT.LANE123 || currTypeSegment == TYPE_GV_SEGMENT.LANE2 || currTypeSegment == TYPE_GV_SEGMENT.LANE12)
                        {
                            // move to pos 3
                            typePos = TYPE_GV_POS.POS3;
                        }
                        else
                        {
                            // move to pos 1
                            typePos = TYPE_GV_POS.POS1;
                        }
                    }
                }
                else
                {
                    TYPE_GV_SEGMENT rightTypeSegment = currGvStage.listTypeGVSegment[right];
                    TYPE_GV_SEGMENT leftTypeSegment  = currGvStage.listTypeGVSegment[left];

                    if (typePos == TYPE_GV_POS.POS2)
                    {
                        // move to pos 1
                        typePos = TYPE_GV_POS.POS1;
                    }
                    else if (typePos == TYPE_GV_POS.POS3)
                    {
                        // move to pos 4
                        typePos = TYPE_GV_POS.POS4;
                    }
                    else
                    {
                        if (rightTypeSegment == TYPE_GV_SEGMENT.LANE12 || rightTypeSegment == TYPE_GV_SEGMENT.LANE123 || rightTypeSegment == TYPE_GV_SEGMENT.LANE2 || rightTypeSegment == TYPE_GV_SEGMENT.LANE23 || leftTypeSegment == TYPE_GV_SEGMENT.LANE12 || leftTypeSegment == TYPE_GV_SEGMENT.LANE123 || leftTypeSegment == TYPE_GV_SEGMENT.LANE2 || leftTypeSegment == TYPE_GV_SEGMENT.LANE23)
                        {
                            if (typePos == TYPE_GV_POS.POS1)
                            {
                                typePos = TYPE_GV_POS.POS2;
                            }
                            else
                            {
                                typePos = TYPE_GV_POS.POS3;
                            }
                        }
                        else
                        {
                            if (typePos == TYPE_GV_POS.POS1)
                            {
                                typePos = TYPE_GV_POS.POS4;
                            }
                            else
                            {
                                typePos = TYPE_GV_POS.POS1;
                            }
                        }
                    }
                }



                if (typePos == TYPE_GV_POS.POS1)
                {
                    destY = baseYStage + 3;
                }
                else if (typePos == TYPE_GV_POS.POS4)
                {
                    destY = baseYStage + 0.6f;
                }
                else if (typePos == TYPE_GV_POS.POS2)
                {
                    destY = baseYStage + 2.2f;
                }
                else if (typePos == TYPE_GV_POS.POS3)
                {
                    destY = baseYStage + 1.4f;
                }

                StartCoroutine(MoveToPos(currPos.y - baseYStage, destY - baseYStage));
            }
            else
            {
                playerState = MAP_PLAYER_STATE.MOVING;
            }
        }
    }