宇宙船(アステロイド)
♥0 |
Line 95 |
Modified 2011-04-04 23:35:24 |
MIT License
archived:2017-03-20 13:50:16
ActionScript3 source code
/**
* Copyright Nowloading_ ( http://wonderfl.net/user/Nowloading_ )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/9R50
*/
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
public class ShipSim2 extends Sprite{
private var ship:Ship;
private var vr:Number = 0;
private var thrust:Number = 0;
private var vx:Number = 0;
private var vy:Number = 0;
public function ShipSim2(){
init();
}
private function init():void{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
ship = new Ship();
addChild(ship);
ship.x = stage.stageWidth/2;
ship.y = stage.stageHeight/2;
addEventListener(Event.ENTER_FRAME,onEnterFlame);
stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP,onKeyUp);
}
private function onKeyDown(e:KeyboardEvent):void{
switch (e.keyCode){
case Keyboard.LEFT:
vr = -5;
break;
case Keyboard.RIGHT:
vr = 5;
break;
case Keyboard.UP:
thrust = 0.2;
ship.draw(true);
break;
default:
break;
}
}
private function onKeyUp(e:KeyboardEvent):void{
vr=0;
thrust=0;
ship.draw(false);
}
private function onEnterFlame(e:Event):void{
ship.rotation += vr;
var angle:Number = ship.rotation * Math.PI/180;
var ax:Number = Math.cos(angle)*thrust;
var ay:Number = Math.sin(angle)*thrust;
vx += ax;
vy += ay;
ship.x += vx;
ship.y += vy;
var left:Number = 0;
var right:Number = stage.stageWidth;
var top:Number = 0;
var bottom:Number = stage.stageHeight;
if(ship.x-ship.width/2>right){
ship.x = left-ship.width/2;
}else if(ship.x + ship.width/2<left){
ship.x = right+ship.width/2;
}
if(ship.y-ship.height/2>bottom){
ship.y = top-ship.height/2;
}else if(ship.y + ship.height/2<top){
ship.y = bottom+ship.height/2;
}
}
}
}
import flash.display.Sprite;
class Ship extends Sprite{
public function Ship(){
draw(false);
}
public function draw(showFlame:Boolean):void{
graphics.clear();
graphics.lineStyle(1,0x000000);
graphics.moveTo(10,0);
graphics.lineTo(-10,10);
graphics.lineTo(-5,0);
graphics.lineTo(-10,-10);
graphics.lineTo(10,0);
if(showFlame){
graphics.lineStyle(1,0xff0000);
graphics.moveTo(-7.5,-5);
graphics.lineTo(-15,0);
graphics.lineTo(-7.5,5);
}
}
}