flash on 2012-7-19
♥0 |
Line 108 |
Modified 2012-07-19 19:30:42 |
MIT License
archived:2017-03-30 23:00:36
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/bUn8
*/
package {
import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.Graphics;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public var paddle:Sprite;
public var vecBall:Vector.<aBall>;
public function FlashTest() {
// write as3 code here..
vecBall = new Vector.<aBall>;
vecBall.push(new aBall());
vecBall[0].bStick = true;
addChild(vecBall[0]);
var g:Graphics;
paddle = new Sprite();
g = paddle.graphics;
g.lineStyle(1, 0);
g.drawRect(-32,-8,64,16);
addChild(paddle);
paddle.x = 250;
paddle.y = 380;
stage.addEventListener(Event.ENTER_FRAME, onEnter);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mdown);
}//ctor
public var relBall:int = 0;
public function mdown(e:MouseEvent):void
{
relBall = 1;
}//mdown
public function onEnter(e:Event):void
{
var vx:Number;
var vy:Number;
vx = (this.mouseX - paddle.x) * 0.4;
if (vx < -16) { vx = -16;}
if (vx > 16) { vx = 16; }
paddle.x += vx;
if (paddle.x < 40) { paddle.x = 40;}
if (paddle.x >= 430) { paddle.x = 430; }
var i:int;
var num:int;
var a:aBall;
num = vecBall.length;
for (i =0; i<num;i++)
{
a = vecBall[i];
if (a.bDead == true) { continue; }
a.update();
if (a.bStick)
{
a.vx = 0;
a.vy = 0;
a.x = paddle.x;
a.y = paddle.y - 8 - 8;
if (relBall)
{
a.bStick = false;
a.vy = -6;
}//endif
}
else
{
if (paddle.hitTestObject(a))
{
if (a.vy > 0)
{
a.vy = -a.vy;
if (a.vy > -3) { a.vy = -5;}
}
if (a.x < paddle.x)
{
a.vx -= Math.random() *2;
}
else
{
a.vx += Math.random() * 2;
}
}//endif
}//endif
}//nexti
relBall = 0;
}//onenter
}
}
import flash.display.Sprite;
internal class aBall extends Sprite
{
public var vx:Number = 0;
public var vy:Number = 0;
public var bDead:Boolean = false;
public var bStick:Boolean = false;
public function aBall()
{
graphics.clear();
graphics.lineStyle(1,0);
graphics.drawCircle(0,0,8);
}//ctor
public function update():void
{
vy += 0.12;
x += vx;
y += vy;
if (vx < 0 && x < 40) { x = 40; vx = -vx;}
if (vx > 0 && x > 430) { x = 430; vx = -vx;}
if (vy < 0 && y < 0) { y = 0; vy = -vy; }
if (vy >= 0 && y > 430) { vx = 0; vy = 0; bDead = true; }
}//update
}//ball