这一部分跟大家分享一个游戏开发中一个必须明白的问题,那就是怎么设计按键,有哪几种按键,怎么实现?
一、按键的种类
简单来说,一般有三类,
- press signal :键位输入等,按下时获取并更新输入
- once trigger signal:跳跃、(非蓄力)攻击等,当玩家按下按钮时,只执行一次便结束
- double trigger signal:连击打combo,按键较少需要区分按下一次和短时间按下两次的功能时
先考虑前面两种状态,我们可以设计一个MyButton类,专门用于获取相应的状态。
public class MyButton_TEST
{
//press signal
public bool OnPressing;
//once trigger
public bool OnPressed;
public bool OnReleased;
private bool curstate;
private bool laststate;
//double trigger
public bool isExtending;
public bool isDelaying;
public void Tick(bool input)
{
//按键输入
curstate = input;
OnPressing = curstate;
OnPressed = false;
OnReleased = false;
if(curstate != laststate)
{
if(curstate == true)
{
OnPressed = true;
}
else
{
OnRelea