Example #1
0
    void OnCollisionEnter2D(Collision2D coll)
    {
        if (coll.gameObject.tag == "JohnGhost")
        {
            Debug.Log("PlayerCollision");
            CameraRigScript.ShakeCamera(0.2f, 0.2f);

            UI_HPGauge.HPDamage(zombieValue); // ManagerGame.john_hp -= zombieValue;
                                              // HP 게이지 조작
                                              //메세지Test
            Debug.Log("Zombie 부딪혀서 HP깎임 - ManagerGame.john_hp = "
                      + ManagerGame.john_hp);
            ShowMessage2.ShowMessage_Zombie();

            zombie_movement = Zombie_Movement.zombie_forward_idle;
            isMoving        = false;
            GetComponent <BoxCollider2D>().gameObject.SetActive(false);
        }
        else if (coll.gameObject.tag == "Zombie")
        {
            if (r > coll.gameObject.GetComponent <CharacterZombie>().r)
            {
                nextPosition       = prevPosition;
                transform.position = prevPosition;
                //state = State.Idle;
                //isMoving = false;
            }
        }
        else if (coll.gameObject.tag == "Tile_Rock" || coll.gameObject.tag == "Tile_Sea")
        {
            nextPosition       = prevPosition;
            transform.position = prevPosition;
        }
    }
Example #2
0
 void zombie_forward()
 {
     if ((r = MoveUtil.MoveByFrame(transform, nextPosition, moveSpeed)) == 0.0f)
     {
         transform.position = nextPosition;
         zombie_movement    = Zombie_Movement.zombie_forward_idle;
         _animator.SetInteger("zombie_movement", (int)zombie_movement);
         isMoving = false;
         //ManagerGame.zombieMove = false;
         isCalcued = false;
         return;
     }
 }
Example #3
0
    void ProcessNextPosition()
    {
        prevPosition = transform.position;
        float   tx        = transform.position.x;
        float   ty        = transform.position.y;
        float   jx        = johnGhost.transform.position.x;
        float   jy        = johnGhost.transform.position.y;
        float   distanceX = Mathf.Abs(tx - jx);
        float   distanceY = Mathf.Abs(ty - jy);
        Vector2 next      = transform.position;

        r = Mathf.Sqrt(distanceX * distanceX + distanceY * distanceY);

        if (r <= range)
        {
            if (distanceX < distanceY)
            {
                if (ty < jy)
                {
                    // ^
                    next.y         += movePixel;
                    nextPosition    = next;
                    zombie_movement = Zombie_Movement.zombie_back;
                }
                else
                {
                    // v
                    next.y         -= movePixel;
                    nextPosition    = next;
                    zombie_movement = Zombie_Movement.zombie_forward;
                }
            }
            else if (distanceX > distanceY)
            {
                if (tx < jx)
                {
                    // >
                    next.x         += movePixel;
                    nextPosition    = next;
                    zombie_movement = Zombie_Movement.zombie_right;
                }
                else
                {
                    // <
                    next.x         -= movePixel;
                    nextPosition    = next;
                    zombie_movement = Zombie_Movement.zombie_left;
                }
            }
            else // distanceX == distanceY 정사각형
            {
                int selectNumber = Random.Range(0, 2);

                if (ty > jy)
                {
                    if (tx > jx)
                    {
                        if (selectNumber == 0)
                        {
                            // <
                            next.x         -= movePixel;
                            nextPosition    = next;
                            zombie_movement = Zombie_Movement.zombie_left;
                        }
                        else if (selectNumber == 1)
                        {
                            // v
                            next.y         -= movePixel;
                            nextPosition    = next;
                            zombie_movement = Zombie_Movement.zombie_back;
                        }
                    }
                    else
                    {
                        if (selectNumber == 0)
                        {
                            // >
                            next.x         += movePixel;
                            nextPosition    = next;
                            zombie_movement = Zombie_Movement.zombie_right;
                        }
                        else if (selectNumber == 1)
                        {
                            // v
                            next.y         -= movePixel;
                            nextPosition    = next;
                            zombie_movement = Zombie_Movement.zombie_forward;
                        }
                    }
                }
                else
                {
                    if (tx > jx)
                    {
                        if (selectNumber == 0)
                        {
                            // <
                            next.x         -= movePixel;
                            nextPosition    = next;
                            zombie_movement = Zombie_Movement.zombie_left;
                        }
                        else if (selectNumber == 1)
                        {
                            // ^
                            next.y         += movePixel;
                            nextPosition    = next;
                            zombie_movement = Zombie_Movement.zombie_back;
                        }
                    }
                    else
                    {
                        if (selectNumber == 0)
                        {
                            // >
                            next.x         += movePixel;
                            nextPosition    = next;
                            zombie_movement = Zombie_Movement.zombie_right;
                        }
                        else if (selectNumber == 1)
                        {
                            // ^
                            next.y         += movePixel;
                            nextPosition    = next;
                            zombie_movement = Zombie_Movement.zombie_back;
                        }
                    }
                }
            }
        }

        _animator.SetInteger("zombie_movement", (int)zombie_movement);
        isMoving = true;
        //ManagerGame.zombieMove = true;
        isCalcued = true;
    }
    void ProcessNextPosition()
    {
        prevPosition = transform.position;
        float tx = transform.position.x;
        float ty = transform.position.y;
        float jx = johnGhost.transform.position.x;
        float jy = johnGhost.transform.position.y;
        float distanceX = Mathf.Abs(tx - jx);
        float distanceY = Mathf.Abs(ty - jy);
        Vector2 next = transform.position;

        r = Mathf.Sqrt(distanceX * distanceX + distanceY * distanceY);

        if (r <= range)
        {
            if (distanceX < distanceY)
            {
                if (ty < jy)
                {
                    // ^
                    next.y += movePixel;
                    nextPosition = next;
                    zombie_movement = Zombie_Movement.zombie_back;
                }
                else
                {
                    // v
                    next.y -= movePixel;
                    nextPosition = next;
                    zombie_movement = Zombie_Movement.zombie_forward;
                }
            }
            else if (distanceX > distanceY)
            {
                if (tx < jx)
                {
                    // >
                    next.x += movePixel;
                    nextPosition = next;
                    zombie_movement = Zombie_Movement.zombie_right;
                }
                else
                {
                    // <
                    next.x -= movePixel;
                    nextPosition = next;
                    zombie_movement = Zombie_Movement.zombie_left;
                }
            }
            else // distanceX == distanceY 정사각형
            {
                int selectNumber = Random.Range(0, 2);

                if (ty > jy)
                {
                    if (tx > jx)
                    {
                        if (selectNumber == 0)
                        {
                            // <
                            next.x -= movePixel;
                            nextPosition = next;
                            zombie_movement = Zombie_Movement.zombie_left;
                        }
                        else if (selectNumber == 1)
                        {
                            // v
                            next.y -= movePixel;
                            nextPosition = next;
                            zombie_movement = Zombie_Movement.zombie_back;
                        }
                    }
                    else
                    {
                        if (selectNumber == 0)
                        {
                            // > 
                            next.x += movePixel;
                            nextPosition = next;
                            zombie_movement = Zombie_Movement.zombie_right;
                        }
                        else if (selectNumber == 1)
                        {
                            // v
                            next.y -= movePixel;
                            nextPosition = next;
                            zombie_movement = Zombie_Movement.zombie_forward;
                        }
                    }
                }
                else
                {
                    if (tx > jx)
                    {
                        if (selectNumber == 0)
                        {
                            // <
                            next.x -= movePixel;
                            nextPosition = next;
                            zombie_movement = Zombie_Movement.zombie_left;
                        }
                        else if (selectNumber == 1)
                        {
                            // ^
                            next.y += movePixel;
                            nextPosition = next;
                            zombie_movement = Zombie_Movement.zombie_back;
                        }
                    }
                    else
                    {
                        if (selectNumber == 0)
                        {
                            // > 
                            next.x += movePixel;
                            nextPosition = next;
                            zombie_movement = Zombie_Movement.zombie_right;
                        }
                        else if (selectNumber == 1)
                        {
                            // ^
                            next.y += movePixel;
                            nextPosition = next;
                            zombie_movement = Zombie_Movement.zombie_back;
                        }
                    }
                }
            }
        }

        _animator.SetInteger("zombie_movement", (int)zombie_movement);
        isMoving = true;
        //ManagerGame.zombieMove = true;
        isCalcued = true;
    }
 void zombie_forward()
 {
     if ((r = MoveUtil.MoveByFrame(transform, nextPosition, moveSpeed)) == 0.0f)
     {
         transform.position = nextPosition;
         zombie_movement = Zombie_Movement.zombie_forward_idle;
         _animator.SetInteger("zombie_movement", (int)zombie_movement);
         isMoving = false;
         //ManagerGame.zombieMove = false;
         isCalcued = false;
         return;
     }
 }
    void OnCollisionEnter2D(Collision2D coll)
    {
        if (coll.gameObject.tag == "JohnGhost")
        {
            Debug.Log("PlayerCollision");
            CameraRigScript.ShakeCamera(0.2f, 0.2f);

            UI_HPGauge.HPDamage(zombieValue); // ManagerGame.john_hp -= zombieValue;
                                              // HP 게이지 조작
                                              //메세지Test
            Debug.Log("Zombie 부딪혀서 HP깎임 - ManagerGame.john_hp = "
                        + ManagerGame.john_hp);
            ShowMessage2.ShowMessage_Zombie();

            zombie_movement = Zombie_Movement.zombie_forward_idle;
            isMoving = false;
            GetComponent<BoxCollider2D>().gameObject.SetActive(false);
        }
        else if (coll.gameObject.tag == "Zombie")
        {
            if (r > coll.gameObject.GetComponent<CharacterZombie>().r)
            {
                nextPosition = prevPosition;
                transform.position = prevPosition;
                //state = State.Idle;
                //isMoving = false;
            }
        }
        else if (coll.gameObject.tag == "Tile_Rock" || coll.gameObject.tag == "Tile_Sea")
        {
            nextPosition = prevPosition;
            transform.position = prevPosition;
        }

    }