キーボードで弾丸を押して撃つ(間隔がある)
2339 ワード
/* */
package
{
import flash.display.Sprite;
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.ui.Keyboard;
public class Main extends Sprite
{
private var flag:Boolean = true;
private var bulletArr:Array = new Array ;
private var bullet:Bullet;
private var time:int;
public function Main()
{
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP,keyUpHandler);
addEventListener(Event.ENTER_FRAME,enterFrameHandler);
}
private function keyDownHandler(e:KeyboardEvent):void
{
if (e.keyCode == Keyboard.SPACE)
{
if(time==0)
{
fire();
}
time++;
//flag = false;
if (time % 5 == 0)
{
fire();
}
}
else if (e.keyCode == Keyboard.A)
{
mc.x -= 5;
}
else if (e.keyCode == Keyboard.D)
{
mc.x += 5;
}
}
private function keyUpHandler(e:KeyboardEvent):void
{
if (e.keyCode == Keyboard.SPACE)
{
//flag = true;
time = 0;
}
}
private function enterFrameHandler(e:Event):void
{
for (var i:int=0; i<bulletArr.length; i++)
{
if (bulletArr[i].y < 0)
{
removeChild(bulletArr[i]);
bulletArr.splice(i,1);
}
}
}
private function fire():void
{
bullet = new Bullet(10,10,0XFF0000);
bullet.x = mc.x;
bullet.y = mc.y;
addChild(bullet);
bulletArr.push(bullet);
}
}
}
/* */
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Bullet extends Sprite
{
private var _width:Number;
private var _height:Number;
private var color:uint;
private var bullet:Bullet;
public function Bullet(_width:Number=10,_height:Number=10,color:uint=0XFF0000)
{
this._width = _width;
this._height = _height;
this.color = color;
drawBullet();
addEventListener(Event.ENTER_FRAME,enterFrameHandler,false,0,true);
}
private function drawBullet():void
{
graphics.beginFill(color);
graphics.drawRect(0,0,_width,_height);
graphics.endFill();
}
private function enterFrameHandler(e:Event):void
{
if (this.y >-10)
{
this.y -= 5;
}
}
}
}