Ejemplo n.º 1
0
    /// <summary>
    /// ブースト処理
    /// </summary>
    public void Boost()
    {
        // 加速度の蓄積
        move.AddAcceleration();
        // 距離ベクトルを計算して、力を加える
        playerRigidbody.velocity = new Vector2(boostSpeed[gaugeCount], 0.0f);

        // 剣を持っているなら
        if (player.charAttackType == GameManager.CHARATTACKTYPE.SWORD)
        {
            // 当たり判定の領域を計算
            var workLeftBottom = leftBottom + (Vector2)transform.position;
            var workRightTop   = rightTop + (Vector2)transform.position;
            // 範囲内のプレイヤーを検知
            var hitPlayersCollider = Physics2D.OverlapAreaAll(workLeftBottom, workRightTop, playerLayer);
            // 当たったプレイヤーをすべて取得
            foreach (var hitPlayerCollider in hitPlayersCollider)
            {
                // ゲームオブジェクトを取得
                var hitPlayerObject = hitPlayerCollider.gameObject;
                // 自分自身のオブジェクトならcontinue
                if (hitPlayerObject == gameObject)
                {
                    continue;
                }
                else
                {
                    // 自分自身でなければダメージを与える
                    var hitPlayerAttack = hitPlayerObject.GetComponent <PlayerAttack>();
                    hitPlayerAttack.IsHit = true;
                }
            }
        }
    }
Ejemplo n.º 2
0
 /// <summary>
 /// プレイヤーの移動処理
 /// </summary>
 public void Run()
 {
     // 加速度の蓄積
     move.AddAcceleration();
     // 速度の増加
     move.SpeedChange();
     // 保留
     // x方向への速度変化
     //ChangeVelocityXToBase();
 }
Ejemplo n.º 3
0
    /// <summary>
    /// 空中状態へのメイン処理
    /// </summary>
    public void Aerial()
    {
        // 加速度の蓄積
        move.AddAcceleration();
        // 速度の増加
        move.SpeedChange();

        /*保留
         * // x方向への速度変化
         * ChangeVelocityXToBase();
         */
    }
Ejemplo n.º 4
0
 /// <summary>
 /// 滑空中の処理
 /// </summary>
 public void Gride()
 {
     // 加速度の蓄積
     move.AddAcceleration();
     // 速度の増加
     move.SpeedChange();
     // x方向への速度緩和
     EasingVelocityX();
     // 保留
     //ChangeVelocityX();
     // y方向への速度緩和
     EasingVelocityY();
 }
Ejemplo n.º 5
0
    /// <summary>
    /// プレイヤーのvelocityを手すりのright方向に変換する関数
    /// </summary>
    public void Slide()
    {
        // 加速度の蓄積
        move.AddAcceleration();
        // 高さの調整
        AdjustHight();

        if (RayHit == true)
        {
            Vector2 workVelocity;
            // 角度による速度変化
            var addSpeedByRot = AddSpeedByRotate();
            var workSpeed     = this.speed + addSpeedByRot;
            // ベクトルによってはx方向とy方向に力が分散してしまうため
            // x方向の力の大きさをを無理やりspeedに戻す処理
            float workX = 1 / RayHit.transform.right.x;
            workVelocity.x       = workSpeed * RayHit.transform.right.x * workX;
            workVelocity.y       = workSpeed * RayHit.transform.right.y * workX;
            rigidbody2d.velocity = workVelocity;

            // 元の処理
            //rigidbody2d.velocity = workSpeed * hitObject.transform.right;
        }
        if (RayHit == true)
        {
            transform.rotation = Quaternion.FromToRotation(Vector2.right, RayHit.collider.gameObject.transform.right);
        }

        //else if(Hit.collider.gameObject.tag == "Converter")
        //{
        //    Debug.Log("コンバーター");
        //    GameObject converter = Hit.collider.gameObject;
        //    Vector2 converterPos = Hit.collider.gameObject.transform.position;
        //    Vector2 hit2converterBottom
        //        = Hit.point - new Vector2(converterPos.x, converterPos.y - converter.GetComponent<CircleCollider2D>().radius * converter.transform.localScale.x);
        //    Debug.DrawLine(Hit.point, new Vector2(converterPos.x, converterPos.y - converter.GetComponent<CircleCollider2D>().radius * converter.transform.localScale.x), Color.red);

        //    Vector2 point = new Vector2(Hit.point.x, converterPos.y - converter.GetComponent<CircleCollider2D>().radius * converter.transform.localScale.y *2);
        //    Debug.DrawLine(converter.transform.position, point, Color.blue);
        //    Vector2 Converter2point = point - (Vector2)converter.transform.position;

        //    transform.rotation = Quaternion.FromToRotation(Vector2.up, hit2converterBottom);
        //}
    }