2014-01-27 71 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):无效' – Cherniv

+0

感谢您的回答,但不要运行它。 – user3134756

回答

0

看起来好像您只在您的构造函数中调用RMimoXY。每次移动船时都应该调用它。因此,将它添加到您的keyhandler年底应该工作:

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(); 
} 
相关问题