flash on 2014-11-27
♥0 |
Line 101 |
Modified 2014-11-27 18:34:55 |
MIT License
archived:2017-03-20 02:01:30
ActionScript3 source code
/**
* Copyright Thy ( http://wonderfl.net/user/Thy )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/FS75
*/
package {
import flash.events.KeyboardEvent;
import flash.events.MouseEvent;
import flash.display.Graphics;
import flash.events.Event;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public var bar:Bar;
private var movement:int;
public function FlashTest() {
bar = new Bar();
draw();
bar.vx = 10;
bar.vy = 10;
stage.addEventListener(Event.ENTER_FRAME, ef);
stage.addEventListener(KeyboardEvent.KEY_DOWN, kd);
stage.addEventListener(KeyboardEvent.KEY_UP, ku);
}
private function draw():void {
bar.draw();
this.addChild(bar);
}
private function kd(e:KeyboardEvent):void {
trace(e.keyCode)
switch (e.keyCode) {
case 37: // left
movement |= 0x0001;
movement &= 0x1101;
break;
case 39: // right
movement |= 0x0011;
break;
}
switch (e.keyCode) {
case 38: // up
movement |= 0x1100;
break;
case 40: // down
movement |= 0x0100;
movement &= 0x0111;
break;
}
}
private function ku(e:KeyboardEvent):void {
trace(e.keyCode)
switch (e.keyCode) {
case 37: // left
movement &= 0x1100;
break;
case 39: // right
movement &= 0x1110;
break
}
switch (e.keyCode) {
case 38: // up
movement &= 0x1011;
break;
case 40: // down
movement &= 0x0011;
break;
}
}
private function ef(e:Event):void {
bar.rotate();
bar.move(movement);
}
}
}
import flash.display.Sprite;
import flash.display.Graphics;
class Bar extends Sprite {
public var vx:Number, vy:Number,
ax:Number = 0.5, ay:Number = 0.5,
mx:Number = 10, my:Number = 10,
spin:Number = 10;
public function draw():void {
var g:Graphics = this.graphics;
g.lineStyle(10,0);
g.moveTo(-20,0);
g.lineTo(20,0);
}
public function rotate():void {
this.rotation += spin;
}
public function move(movement:int) :void{
if (movement & 0x1) {
vx += ax * (((movement & 0x10) - 1));
}
if (movement & 0x0100) {
vy -= ay * (((movement & 0x1000) - 4) >> 3);
}
if (movement & 0x0101) {
vx = vx > mx ? mx : vx < -mx ? -mx : vx;
vy = vy > my ? my : vy < -my ? -my : vy;
}
vx *= .9;
vy *= .9;
x += vx;
y += vy;
}
}