如何让子弹移动 Actionscript 3.0
how do I make the bullet move Actionscript 3.0
我正在制作一个非常简单的 Flash 游戏来理解 AS3。我做了一个带控件的 cirkel。当我按下 space 时,我想发射子弹。我已经尝试过 for、while 循环和不同的教程,但我就是不知道该怎么做。
这是我的代码:
import flash.net.drm.LoadVoucherSetting;
//controls
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
var dir:String = "default";
function reportKeyDown(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.LEFT)
{
ball_mc.x -= 10;
dir = "venstre";
}
if (event.keyCode == Keyboard.RIGHT)
{
ball_mc.x += 10;
dir = "hojre";
}
if (event.keyCode == Keyboard.UP)
{
ball_mc.y -= 10;
dir = "op";
}
if (event.keyCode == Keyboard.DOWN)
{
ball_mc.y += 10;
dir = "ned";
}
if (event.keyCode == Keyboard.SPACE)
{
shootBullet();
}
}
var speed1:int = 1;
function shootBullet():void
{
//instantiate your object
var bullet:Bullets = new Bullets ;
//add it to the stage
addChild(bullet);
//object will default to x=0 , y=0 so you can define that as well
bullet.x = ball_mc.x;
bullet.y = ball_mc.y +(ball_mc.width/2);
bullet.y += 10 * 2;
}
stop();
要让它移动,您需要使用一些以一定间隔重复发生的事件。
A Timer
:
var myTimer:Timer = new Timer(25);//interval, milliseconds
myTimer.addEventListener(TimerEvent.TIMER, timerHandler);
myTimer.start();
var speedX:int = 0;
var speedY:int = 1;
function timerHandler(event:TimerEvent):void {
bullet.y += speedX;
bullet.x += speedY;
}
或 ENTER_FRAME
事件:
addEventListener(Event.ENTER_FRAME, onFrame);
function onFrame(event:Event):void {
bullet.y += speedX;
bullet.x += speedY;
}
我正在制作一个非常简单的 Flash 游戏来理解 AS3。我做了一个带控件的 cirkel。当我按下 space 时,我想发射子弹。我已经尝试过 for、while 循环和不同的教程,但我就是不知道该怎么做。 这是我的代码:
import flash.net.drm.LoadVoucherSetting;
//controls
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
var dir:String = "default";
function reportKeyDown(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.LEFT)
{
ball_mc.x -= 10;
dir = "venstre";
}
if (event.keyCode == Keyboard.RIGHT)
{
ball_mc.x += 10;
dir = "hojre";
}
if (event.keyCode == Keyboard.UP)
{
ball_mc.y -= 10;
dir = "op";
}
if (event.keyCode == Keyboard.DOWN)
{
ball_mc.y += 10;
dir = "ned";
}
if (event.keyCode == Keyboard.SPACE)
{
shootBullet();
}
}
var speed1:int = 1;
function shootBullet():void
{
//instantiate your object
var bullet:Bullets = new Bullets ;
//add it to the stage
addChild(bullet);
//object will default to x=0 , y=0 so you can define that as well
bullet.x = ball_mc.x;
bullet.y = ball_mc.y +(ball_mc.width/2);
bullet.y += 10 * 2;
}
stop();
要让它移动,您需要使用一些以一定间隔重复发生的事件。
A Timer
:
var myTimer:Timer = new Timer(25);//interval, milliseconds
myTimer.addEventListener(TimerEvent.TIMER, timerHandler);
myTimer.start();
var speedX:int = 0;
var speedY:int = 1;
function timerHandler(event:TimerEvent):void {
bullet.y += speedX;
bullet.x += speedY;
}
或 ENTER_FRAME
事件:
addEventListener(Event.ENTER_FRAME, onFrame);
function onFrame(event:Event):void {
bullet.y += speedX;
bullet.x += speedY;
}