// Update is called once per frame
 public override void UpdateFrame()
 {
     if (Input.GetButtonDown("Swap" + id))
     {
         GameManager.instance.Swap(this);
     }
     UpdateInputBuffer();                                     // Grab all inputs from player this frame and queue input buffer
     UpdateState();                                           // Change player state based on inputs
     currentInputFrame = new PlayerInputFrame(isFacingRight); // Create new input buffer for next frame
 }
    public InputBuffer inputBuffer; //TODO: Consolidate PlayerInputFrame api into input buffer

    // Use this for initialization
    protected override void Start()
    {
        base.Start();

        GameManager.instance.RegisterPlayer(this);
        body              = GetComponent <Rigidbody2D>();
        spriteRenderer    = GetComponent <SpriteRenderer>();
        fsm               = gameObject.AddComponent <PlayerStateMachine>();
        currHp            = maxHp;
        currMeter         = maxMeter;
        groundHeight      = transform.localPosition.y;
        inputBuffer       = new InputBuffer();
        currentInputFrame = new PlayerInputFrame(isFacingRight);
    }
Exemple #3
0
    public void Enqueue(PlayerInputFrame frame)
    {
        if (inputBuffer.Count >= size)
        {
            inputBuffer.Dequeue();
        }

        currentInputFrame = frame;
        inputBuffer.Enqueue(frame);

        if (frame.IsButtonPressed(PlayerInputButton.A_RELEASE))
        {
            aAllowed = true;
        }
    }
Exemple #4
0
    public override bool ExecuteInput()
    {
        PlayerInputFrame currentInputFrame = player.currentInputFrame;
        InputBuffer      inputBuffer       = player.inputBuffer;

        if (currentInputFrame.IsButtonPressed(PlayerInputButton.UP))
        {
            if (currentInputFrame.IsForwardPressed())
            {
                machine.ChangeState <JumpingForwardState>();
            }
            else if (currentInputFrame.IsBackwardPressed())
            {
                machine.ChangeState <JumpingBackwardState>();
            }
            else
            {
                machine.ChangeState <JumpingUpState>();
            }
        }
        else if (currentInputFrame.IsForwardPressed())
        {
            machine.ChangeState <WalkingForwardState>();
        }
        else if (currentInputFrame.IsBackwardPressed())
        {
            machine.ChangeState <WalkingBackwardState>();
        }
        else if (inputBuffer.IsButtonPressed(PlayerInputButton.A))
        {
            machine.ChangeState <StandingAState>();
        }
        else
        {
            machine.ChangeState <StandingState>();
        }

        return(false);
    }