示例#1
0
    public override void Mode_Update(Charactor _obj)
    {
        //コールバックによってInputRecorderをハックする

        base.Mode_Update(_obj);

        //実際に移動する関数
        if (_obj.IsRight)
        {
            _obj.transform.localScale = new Vector3(_obj.BaseScale_x, _obj.transform.localScale.y, _obj.transform.localScale.z);
        }
        else
        {
            _obj.transform.localScale = new Vector3(-_obj.BaseScale_x, _obj.transform.localScale.y, _obj.transform.localScale.z);
        }
        _obj.transform.Translate(new Vector2(player.RunSpeed * MyCommonF.BoolToPorn(_obj.IsRight), 0));


        //最新のスタック以外は排除する
        p.recorder.DeleteOldAllowStack();

        if (p.RunSpeed < p.MaxRunSpeed)
        {
            p.RunSpeed += Accel;
            if (p.RunSpeed > p.MaxRunSpeed)
            {
                p.RunSpeed = p.MaxRunSpeed;
            }
        }
    }
示例#2
0
 //ただ左右に移動するだけの処理
 public void Move(float _speed)
 {
     if (!Movable)
     {
         return;
     }
     //isRightをローカルのScaleで測定
     SetScale();
     transform.Translate(new Vector2(_speed * MyCommonF.BoolToPorn(IsRight), 0));
 }
示例#3
0
    public override void Mode_Update(Charactor _obj)
    {
        base.Mode_Update(_obj);
        if (_obj.modetime > _obj.nowflag.StartTime && !ishitbox)
        {
            MakeHitBox(_obj, _obj.hitbox, 0, Attack[0]);
        }


        //左右移動
        if (_obj.IsRight)
        {
            _obj.transform.localScale = new Vector3(_obj.BaseScale_x, _obj.transform.localScale.y, _obj.transform.localScale.z);
        }
        else
        {
            _obj.transform.localScale = new Vector3(-_obj.BaseScale_x, _obj.transform.localScale.y, _obj.transform.localScale.z);
        }
        _obj.transform.Translate(new Vector2(player.P_status.walkspeed * MyCommonF.BoolToPorn(_obj.IsRight), 0));
    }
示例#4
0
    void Update()
    {
        //ポーズモードなら呼び出さない
        if (Time.timeScale == 0)
        {
            return;
        }

        //ランモード以外の時RunSpeedを徐々に落とす
        if (Mode.index != 6)
        {
            if (RunSpeed > 0)
            {
                RunSpeed -= RunDecaySpeed;
                if (RunSpeed < 0)
                {
                    RunSpeed = 0;
                }
            }

            //実際に移動する関数
            if (IsRight)
            {
                transform.localScale = new Vector3(BaseScale_x, transform.localScale.y, transform.localScale.z);
            }
            else
            {
                transform.localScale = new Vector3(-BaseScale_x, transform.localScale.y, transform.localScale.z);
            }
            transform.Translate(new Vector2(RunSpeed * MyCommonF.BoolToPorn(IsRight), 0));
        }



        ParentUpdate();
        //Move();
        //モードの行動
        if (Mode.flag.StartInputReceptionTime <= modetime && Mode.flag.EndInputReceptionTime > modetime)
        {
            recorder.Update();
        }

        Mode.Mode_Update(this);

        //ジャンプ中でなく着地しているならアニメシグナル
        //clashの中身が入っているなら
        if (clash.Active)
        {
            if (Mode.index != 10)
            {
                ChangeMode(10);
            }
        }

        //
        if (status.HP <= 0)
        {
            status.Alive = false;
            if (Mode.index != 9)
            {
                ChangeMode(9);
            }
        }
        //キー入力成立タイマー更新
        if (recorder.keySuccess)
        {
            keysuccesstimer += Time.deltaTime;
        }

        //無敵タイマー更新
        if (Invisible)
        {
            invisibletimer += Time.deltaTime;

            if (invisibletimer > invisibletime)
            {
                invisibletimer = 0;
                Invisible      = false;
            }
        }
        //無敵だったらカラーマスク(紫)
        if (Invisible || !nowflag.IsAbleToBeClashed)
        {
            renderer.color = Color.magenta;
        }
        else
        {
            if (renderer.color == Color.magenta)
            {
                renderer.color = Color.white;
            }
        }
        //無敵だったらレイヤーを変更
        if (Invisible || !nowflag.IsAbleToBeClashed)
        {
            gameObject.layer = 13;//PlayerInvisible
        }
        else
        {
            gameObject.layer = 9;//Player
        }

        //瀕死アニメ用の体力管理
        animator.SetBool("Deadly", (status.HP <= 10));
    }