正如您在许多游戏中看到的那样,当您的角色仅通过简单的点击即可执行多个攻击动作。例如,第一次点击是普通攻击,第二次点击(在第一次点击之后)仍然是普通攻击但动作不同,第三次点击(在两次第一次点击之后)也是普通攻击但可能更特殊,等等。诸如此类。那么你们如何编码呢?我的游戏是 2D 像素。由 GODOT 编码。
我搜索了很多方法,但可能我没有足够的经验来进行正确的调查。如果你知道什么请分享。谢谢!
我建议做一个有限状态机,玩家可以通过按下攻击按钮进入攻击状态,然后玩家将执行普通攻击,然后有额外的状态,只有当玩家处于之前的攻击状态时才能进入并给这些额外的状态中的每一个新的攻击。
另外,可以添加一个计时器,这样在攻击后的短时间内仍然可以进入连续的攻击
有限状态机在创建角色时通常也很有用
在伪代码中是这样的:
IdleState() {
if attackButton.isPressed() {
EnterAttackState1()
}
}
AttackState1() {
//Normal Attack Code
if attackButton.isPressed() {
EnterAttackState2()
}
if attackIsOver {
EnterIdleState()
}
}
AttackState2() {
//Attack 2 Code
if attackButton.isPressed() {
EnterAttackState3()
}
if attackIsOver {
EnterIdleState()
}
}
etc.
您可以记录点击次数。
var clicks = 0;
onclick = function(e) {
if (clicks == 0) {
doAttack1Animation(); clicks = 1; return;
}
if (clicks == 1) {
doAttack2Animation(); clicks = 2; return;
}
if (clicks == 2) {
doAttack3Animation(); clicks = 0; return;
}
}