0
我在課堂上做遊戲,我無法弄清楚。 每當我的角色輸了,遊戲跳轉到「再試一次」屏幕。當我按下按鈕gotoAndPlay(1)時,代碼「Rakett.Rita.y - = 10;」堆棧,使物體下次移動速度快兩倍。 我試過卸載MC,加載另一個場景而不是另一個幀,以及其他各種東西。我無法讓它工作。「if(upPressed){object.y - = 10;}」 - 每次死亡後堆疊
另外,無論何時按下回車鍵,我都會使用對象崩潰。有什麼辦法可以禁用輸入新聞?
謝謝! 這裏是我的代碼:
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);
ADDED^
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腳本。 – Sellie
您可以像添加它們一樣刪除事件偵聽器。你可能做了這樣的事情:addEventListener(KeyboardEvent.MOUSE_DOWN,yourFunction)。所以你需要做removeEventListener(KeyboardEvent.MOUSE_DOWN,yourFunction)。 – Snukus
試圖添加此代碼在你贏或放鬆的框架,但它沒有工作。我還在原始文章中添加了其他代碼。我做錯了什麼?非常感謝你的幫助! RakettRita.removeEventListener(Event.ENTER_FRAME,fl_MoveInDirectionOfKey_2); stage.removeEventListener(KeyboardEvent.KEY_DOWN,fl_SetKeyPressed_2); stage.removeEventListener(KeyboardEvent.KEY_UP,fl_UnsetKeyPressed_2); – Sellie