2014-01-27 1 views
0

조언이 필요합니다. 저는 하나의 프로젝트, 즉 단순한 게임을하고 있습니다. 그것은 "우주 침략자"와 같은 것이 될 것입니다. 나는 그 배가 구역을 벗어날 수 없도록 막을 필요가 있었다 (무대). RMimoXY 기능이 작동하지 않습니다. 누군가 내가 프로그램에서 누락 된 부분을 확인해 주시겠습니까?무대에서 경계선을 만드는 방법

미리 조언 해 주셔서 감사합니다.

import flash.events.KeyboardEvent; 
import flash.display.Sprite; 
import flash.display.DisplayObject; 
import flash.media.Sound; 
import flash.display.Stage; 

var let: Boolean = false; 
var pozadi: Stage; 
var vx:Number = 0; 
var vy:Number = 0; 

function mezernik(){ 
    var mySound: Sound = new laserFire(); 
    mySound.play(); 
    RMimoXY(); 
} 

stage.addEventListener(KeyboardEvent.KEY_DOWN, klavesnice); 

function klavesnice(e: KeyboardEvent){ 
    switch(e.keyCode){ 
     case Keyboard.LEFT: lod.x += -5; break; 
     case Keyboard.RIGHT: lod.x += 5; break; 
     case Keyboard.UP: lod.y += -5; break; 
     case Keyboard.DOWN: lod.y += 5; break; 
     case Keyboard.SPACE: mezernik(); break; 
    } 
} 

function RMimoXY(){ 
    if (lod.x > stage.stageWidth){ 
     lod.x = 0 - lod.width; 
    } 
    else if (lod.x < 0 - lod.width){ 
     lod.x = stage.stageWidth; 
    } 
    if (lod.y > stage.stageHeight){ 
     lod.y = 0 - lod.height; 
    } 
    else if (lod.y < 0 - lod.height){ 
     lod.y = stage.stageHeight; 
    } 
} 
+0

시도처럼, 모든 프레임에이 방법을 실행하는'stage.addEventListener (되어 Event.ENTER_FRAME, RMimoXY) '기능과 같은', 변경은 그 정의 RMimoXY (e : Event) : void' – Cherniv

+0

답변 해 주셔서 고맙지 만 작동하지 않습니다. – user3134756

답변

0

생성자에 RMimoXY만을 호출하는 것처럼 보입니다. 배가 움직일 때마다 호출해야합니다. 그래서 키 핸들러의 말미에 추가 작업을해야합니다 :

function klavesnice(e: KeyboardEvent){ 
    switch(e.keyCode){ 
     case Keyboard.LEFT: lod.x += -5; break; 
     case Keyboard.RIGHT: lod.x += 5; break; 
     case Keyboard.UP: lod.y += -5; break; 
     case Keyboard.DOWN: lod.y += 5; break; 
     case Keyboard.SPACE: mezernik(); break; 
    } 
    RMimoXY(); 
}