flash on 2016-1-16
♥0 |
Line 60 |
Modified 2016-01-16 12:06:36 |
MIT License
archived:2017-03-30 11:40:28
ActionScript3 source code
/**
* Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/gSLG
*/
package {
import flash.ui.Keyboard;
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest() {
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKdown);
stage.addEventListener(KeyboardEvent.KEY_UP, onKup);
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
public var vecKey:Vector.<Boolean> = new Vector.<Boolean>(512, false);
public function onKdown(e:KeyboardEvent):void { vecKey[e.keyCode]=true; }
public function onKup(e:KeyboardEvent):void { vecKey[e.keyCode] =false;}
public function isKeyDown(k:int):Boolean { return vecKey[k]; }
public var cx:Number = 130;
public var cy:Number = 230;
public var vx:Number = 0;
public var vy:Number = 0;
public var rx:Number = 230;
public var ry:Number = 230;
public var gy:Number = 230;
public var gt:int = 1;
public var dmgTime:int = 0;
public function onEnter(e:Event):void
{
gy+=0.2;
if (ry>= 230 && gy > 0) { ry=230;gy=-5;}
ry+=gy;
vx *= 0.93;
vy+=0.2;
if (cy>= 230 && vy > 0) { cy=230;vy=0;}
cx+=vx; cy+=vy;
var ms:Number;
ms =0.3;
if (isKeyDown(Keyboard.LEFT)) { vx -=ms;}
if (isKeyDown(Keyboard.RIGHT)) { vx +=ms;}
if (isKeyDown(Keyboard.UP) && cy>=220) { vy=-5;}
if ((Math.abs(cx-rx)<24)
&& (vy>0)
&& (cy < ry)
&& (cy >= ry-16-16))
{ vy=-3; gy=1; }
/* else
if ((Math.abs(cx-rx)<24)
&& (vy<0)
&& (cy > ry)
&& (cy < ry+16+16))
{ vy=1; gy=-3; }*/
else
if ((Math.abs(cx-rx)<24)
&& (Math.abs(cy-ry)<16) )
{ dmgTime = gt+3; }
/*
if (Math.abs(cx-rx)<24)
if ((vy>=0 && cy < ry+16 ) || (vy<=0 && cy > ry-16 ) )
{ dmgTime = gt+20; }
*/
graphics.clear();
graphics.lineStyle(2, 0);
graphics.drawCircle(cx,cy, 16);
graphics.drawRect(0,230+16,430,20);
graphics.drawCircle(rx,ry,16);
if (cy<ry)
{ graphics.moveTo(rx,ry); graphics.lineTo(cx,cy); }
if (dmgTime>=gt)
{ graphics.beginFill(0xFF0000,1); graphics.drawCircle(cx,cy,16); graphics.endFill(); }
gt+=1;
}//onenter
}//classend
}