// 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); }
public void Enqueue(PlayerInputFrame frame) { if (inputBuffer.Count >= size) { inputBuffer.Dequeue(); } currentInputFrame = frame; inputBuffer.Enqueue(frame); if (frame.IsButtonPressed(PlayerInputButton.A_RELEASE)) { aAllowed = true; } }
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); }