コード例 #1
0
ファイル: CharacterHead.cs プロジェクト: SensShayne/Gunster
    // public functions --------------------------------------------------
    public override void LookAt(Vector3 sourcePostion, Vector3 targetPosition, CharacterPose characterPose)
    {
        float lookAngle = Mathf.Abs(Utility.GetAngle (sourcePostion, targetPosition, true, false)) + defaultSpriteAngle;

        float revisionAngle;

        switch (characterPose)
        {
            case CharacterPose.CROWL:
                {
                    revisionAngle = Mathf.Clamp (lookAngle,
                        Utility.CalcDefaultLeftAngle (defaultSpriteAngle)-Character.CROWL_POSE_ANGLE_RANGE,
                        Utility.CalcDefaultLeftAngle (defaultSpriteAngle)+Character.CROWL_POSE_ANGLE_RANGE);
                }
                break;
            default:
                {
                    revisionAngle = Mathf.Clamp (lookAngle,
                        Utility.CalcDefaultUpAngle (defaultSpriteAngle),
                        Utility.CalcDefaultDownAngle (defaultSpriteAngle) -60.0f);
                }
                break;
        }

        transform.rotation = Quaternion.Euler(new Vector3(0,0,revisionAngle));
    }
コード例 #2
0
ファイル: CharacterGun.cs プロジェクト: SensShayne/Gunster
    // public functions ---------------------------------------------------
    public override void LookAt(Vector3 sourcePostion, Vector3 targetPosition, CharacterPose characterPose)
    {
        //_bulletSpawn.LookAt (transform.position, targetPosition, characterPose);

        const float bulletSpawnDefaultAngle = 0.0f;

        float lookAngle = -Utility.GetAngle (sourcePostion, targetPosition) + bulletSpawnDefaultAngle;

        float revisionAngle = 0.0f;

        switch (characterPose)
        {
            case CharacterPose.CROWL:
                {
                    bool isCharacterFlip = targetPosition.x > transform.parent.parent.transform.position.x;
                    if (!isCharacterFlip)
                    {
                        revisionAngle = Mathf.Clamp (lookAngle,
                            Utility.CalcDefaultLeftAngle (bulletSpawnDefaultAngle)-Character.CROWL_POSE_ANGLE_RANGE,
                            Utility.CalcDefaultLeftAngle (bulletSpawnDefaultAngle)+Character.CROWL_POSE_ANGLE_RANGE);
                    }
                    else if (isCharacterFlip)
                    {
                        revisionAngle = Mathf.Clamp (lookAngle,
                            Utility.CalcDefaultRightAngle (bulletSpawnDefaultAngle)-Character.CROWL_POSE_ANGLE_RANGE,
                            Utility.CalcDefaultRightAngle (bulletSpawnDefaultAngle)+Character.CROWL_POSE_ANGLE_RANGE);
                    }
                    Debug.Log (isCharacterFlip);
                }
                break;
            default:
                {
                    revisionAngle = lookAngle;
                }
                break;
        }

        //_bulletSpawn.transform.rotation = Quaternion.Euler(new Vector3(0,0,revisionAngle));
        _bulletSpawn.rotation = Quaternion.Euler(new Vector3(0,0,revisionAngle));
    }
コード例 #3
0
ファイル: Character.cs プロジェクト: SensShayne/Gunster
    // public functions ---------------------------------------------------
    public void Move(float horizontal, float vertical, float horizontalRaw, float verticalRaw)
    {
        if (_death)
        {
            return;
        }

        // move
        Vector2 position = transform.position;
        if (pose == CharacterPose.SKY)
        {
            position.x += horizontal * MoveSpeed();
        }
        else
        {
            position.x += horizontalRaw * MoveSpeed();
        }
        transform.position = position;

        Vector2 velocity = _rigidbody.velocity;
        if (vertical > 0)
        {
            velocity.y = boosterSpeed;
        }
        _rigidbody.velocity = velocity;

        // pose
        if (IsSkying ())
        {
            pose = CharacterPose.SKY;
        }
        else
        {
            if (-0.5f <= vertical && vertical < 0.0f)
            {
                pose = CharacterPose.CROUCH;
            }
            else if (-1.0f <= vertical && vertical < -0.5f)
            {
                pose = CharacterPose.CROWL;
            }
            else if (vertical == 0.0f)
            {
                pose = CharacterPose.STAND;
            }
        }

        // direction
        if (horizontalRaw == 0)
        {
            moveDirection = MoveDirection.STOP;
        }
        else
        {
            moveDirection = MoveDirection.FORWARD;

            if ((horizontal > 0 && !_flip) ||
                (horizontal < 0 && _flip))
            {
                flip = !flip;
            }
        }
    }
コード例 #4
0
ファイル: Character.cs プロジェクト: SensShayne/Gunster
 void FixedUpdate()
 {
     if (_death)
     {
         if (IsSkying ())
         {
             pose = CharacterPose.SKY;
         }
         else
         {
             pose = CharacterPose.STAND;
         }
     }
     // test
     else
     {
         if (Input.GetKeyDown (KeyCode.Q))
         {
             Death (DeathDirection.BACK);
         }
         else if (Input.GetKeyDown (KeyCode.E))
         {
             Death (DeathDirection.FRONT);
         }
     }
 }
コード例 #5
0
ファイル: CharacterWeapon.cs プロジェクト: SensShayne/Gunster
    // public functions --------------------------------------------------
    public override void LookAt(Vector3 sourcePostion, Vector3 targetPosition, CharacterPose characterPose)
    {
        base.LookAt (sourcePostion, targetPosition, characterPose);

        _gun.LookAt (sourcePostion, targetPosition, characterPose);
    }