【问题标题】:How create border in stage如何在舞台上创建边框
【发布时间】:2014-01-27 19:26:25
【问题描述】:

我需要建议,请。我正在做一个项目——一个简单的游戏。它将类似于“太空入侵者”。我只需要迎合船不能离开的区域(舞台)。功能,被称为“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; 
    }
}

【问题讨论】:

  • 尝试在每一帧上运行这个方法,比如:stage.addEventListener(Event.ENTER_FRAME, RMimoXY);,并改变它的定义,比如function RMimoXY(e:Event):void
  • 感谢您的回答,但不要使用它。

标签: actionscript-3 flash stage


【解决方案1】:

看起来好像您只是在构造函数中调用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();
}

【讨论】:

    猜你喜欢
    • 2014-10-21
    • 1970-01-01
    • 2015-10-20
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    相关资源
    最近更新 更多