我正在尝试创建一个节拍游戏,现在我的角色正在攻击。到目前为止,我有 3 个攻击动画并且几乎可以工作。这就是我想要的,如果玩家按下攻击按钮,那么角色将进行攻击,如果玩家继续按下攻击按钮,它将继续其攻击序列(注意:如果玩家按住键,我不想要,有成为按键)。
问题是,如果你继续捣碎它攻击的攻击按钮,但问题是一旦攻击按钮被按下,它就会进入下一个攻击动画,我不希望那样。一旦当前攻击动画完全完成,我怎样才能让它进入下一个攻击动画,而不是在当前攻击动画的中途跳到下一帧。所以我希望角色完成它的攻击,如果玩家仍然键入攻击键,它将进入下一个攻击帧,否则它将停止。这是我到目前为止所做的
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
public class Player extends MovieClip
{
//Attack variables
var Attacking:Boolean = false;
var Punches:int = 0;
var Punching:Boolean = false;
public function Player()
{
stage.addEventListener(KeyboardEvent.KEY_DOWN,KeyPressed);
addEventListener(Event.ENTER_FRAME,Update);
}
function KeyPressed(event:KeyboardEvent):void
{
//Note: I need these listeners here
stage.removeEventListener(KeyboardEvent.KEY_DOWN, KeyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, KeyUp);
//If A key is down
if (event.keyCode == 65)
{
Attacking = true;
Punching = true;
Punches++;
}
}
function Update(event:Event)
{
//If player is not attacking
if (Attacking == false)
{
Punching = false;
Punches = 0;
}
else if (Attacking == true)
{
if (Punching == true)
{
gotoAndStop('Jab' + Punches);
}
}
}
function KeyUp(event:KeyboardEvent)
{
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyPressed);
}
}
}
同样在我放下的每个攻击动画的最后一帧内
import flash.display.MovieClip;
import flash.events.Event;
stop();
MovieClip(parent).Attacking = false;
MovieClip(parent).Punches = 0;
不确定这种方法是否是最好的解决方法,或者我应该创建一个扩展的类/数组,如果是的话,我将如何做到这一点