Actionscript 3 &引用;如果(加上){object.y-=10;}";-每死一堆
我在课堂上做游戏,我搞不懂。 每当我的角色输了,游戏就会跳转到“重试”屏幕。当我按下gotoAndPlay(1)按钮时,代码“Rakett.Rita.y-=10;”堆叠起来,使对象下次移动速度增加一倍。 我尝试卸载MC,加载另一个场景而不是另一个帧,以及其他各种事情。我不能让它工作 此外,每当我按enter键时,用于对象的tween就会崩溃。有没有办法禁用回车键 谢谢! 这是我的密码:Actionscript 3 &引用;如果(加上){object.y-=10;}";-每死一堆,actionscript-3,flash,Actionscript 3,Flash,我在课堂上做游戏,我搞不懂。 每当我的角色输了,游戏就会跳转到“重试”屏幕。当我按下gotoAndPlay(1)按钮时,代码“Rakett.Rita.y-=10;”堆叠起来,使对象下次移动速度增加一倍。 我尝试卸载MC,加载另一个场景而不是另一个帧,以及其他各种事情。我不能让它工作 此外,每当我按enter键时,用于对象的tween就会崩溃。有没有办法禁用回车键 谢谢! 这是我的密码: var upPressed: Boolean = false; var downPressed:
var upPressed: Boolean = false;
var downPressed: Boolean = false;
var leftPressed: Boolean = false;
var rightPressed: Boolean = false;
RakettRita.addEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey_2);
stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed_2);
stage.addEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed_2);
增加^
function fl_MoveInDirectionOfKey_2(event: Event) {
if (upPressed) {
RakettRita.y -= 10;
RakettRita.rotation = -20;
}
if (downPressed) {
RakettRita.y += 10;
RakettRita.rotation = 40;
}
// if hit
if (trær.hitTestPoint(RakettRita.x, RakettRita.y, true)) {
// Go to losing-screen
gotoAndStop(215)
}
}
function fl_SetKeyPressed_2(event: KeyboardEvent): void {
switch (event.keyCode) {
case Keyboard.UP:
{
upPressed = true;
break;
}
case Keyboard.DOWN:
{
downPressed = true;
break;
}
}
}
function fl_UnsetKeyPressed_2(event: KeyboardEvent): void {
switch (event.keyCode) {
case Keyboard.UP:
{
upPressed = false;
break;
}
case Keyboard.DOWN:
{
downPressed = false;
break;
}
}
}
当您进入重试屏幕时,需要删除这些事件侦听器。否则,下次运行此框架的代码时,它将添加侦听器的副本,所有操作都将发生两次。听起来很合乎逻辑!你知道我是怎么做到的吗?这是我的第一个AS3脚本。删除事件侦听器就像添加它们一样。您可能做了如下操作:addEventListener(KeyboardEvent.MOUSE\u DOWN,yourFunction)。因此,您需要执行removeEventListener(KeyboardEvent.MOUSE_DOWN,yourFunction)。尝试在赢或输的帧中添加此代码,但无效。我还在我的原始帖子中添加了其余的代码。我做错了什么?非常感谢你的帮助!RakettRita.removeEventListener(Event.ENTER_FRAME,fl_MoveInDirectionOfKey_2);阶段。移除VentListener(KeyboardEvent.KEY_向下,fl_设置键按下2);阶段。移除VentListener(KeyboardEvent.Keyu向上,fl\u未设置Keypressed\u 2);好了!我通过在原始帧上的IF语句中添加removeevenllistener解决了这个问题。非常感谢你!