我正在 Flash 8 中使用 ActionScript 2.0 开发吃豆人游戏,我需要为吃豆人制作控件,我希望他在按下箭头键时永远移动,就像他在原来的吃豆人,那么,谁能给我这个代码?
我试图找到按下箭头键时使吃豆人永远移动的代码,但我找到的只是actionscript 3.0,我正在使用actionscript 2.0
如果我没记错的话,有两种方法可以做到。
首先,你可以订阅相关事件并记录按键的状态,如下所示:
var UP:Boolean = False;
var DOWN:Boolean = False;
function onKeyUp()
{
switch (Key.getCode())
{
case Key.UP:
UP = False;
break;
case Key.DOWN:
DOWN = False;
break;
}
}
function onKeyDown()
{
switch (Key.getCode())
{
case Key.UP:
UP = True;
break;
case Key.DOWN:
DOWN = True;
break;
}
}
Key.addListener(this);
然后当吃豆人有时间行动时,你可以检查它们:
if (UP != DOWN)
{
if (UP)
{
// Do what you do to move it up.
}
else // if (DOWN)
{
// Do what you do to move it down.
}
}
else
{
// If they are pressed at the same time or not pressed, do nothing.
}
第二种方法是检查当 Pacman 执行操作时按键是否被按下:
var UP:Boolean = Key.isDown(Key.UP);
var DOWN:Boolean = Key.isDown(Key.DOWN);
if (UP != DOWN)
{
if (UP)
{
// Do what you do to move it up.
}
else // if (DOWN)
{
// Do what you do to move it down.
}
}
else
{
// If they are pressed at the same time or not pressed, do nothing.
}
这两者之间的区别在于,onKeyDown事件是永久生成的,就像您按下一个键并在文本编辑器中得到一行相同的字符:aaaaaaaaaaaaaaaaaaa(但您无法预测笔划频率以及第一个间隔和第一个间隔之间的差异)其余的,因为它是由系统控制的),而 Key.isDown(...) 可以当场使用,如果您通过计时来测量交互性,而不是将其绑定到按键事件。