/**
* Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/IJn4
*/
package {
import flash.events.Event;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest() {
var a:xObj;
a = new xObj();
a.cx = 230;
a.cy = 230;
a.width = 128;
a.vx = 4;
a.vy = 4;
// a.vang = 0.4;
a.ang = Math.random()*6.28;
myObj = a;
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
public var myObj:xObj;
public function onEnter(e:Event):void
{
graphics.clear();
graphics.lineStyle(2, 0);
var ax:Number; var ay:Number;
var bx:Number; var by:Number;
var a:xObj;
a = myObj;
a.cx += a.vx;
a.cy += a.vy;
a.ang += a.vang;
//a.vx *= 0.99;
//a.vy *=0.99
//a.vang *= 0.99;
ax = a.cx + Math.cos(a.ang) * a.width*0.5;
ay = a.cy + Math.sin(a.ang) * a.width*0.5;
bx = a.cx - Math.cos(a.ang) * a.width*0.5;
by = a.cy - Math.sin(a.ang) * a.width*0.5;
graphics.drawCircle(ax,ay, 8);
graphics.drawCircle(bx,by, 8);
graphics.moveTo(ax,ay);
graphics.lineTo(bx,by);
var rx:Number; var ry:Number;
var rx2:Number; var ry2:Number;
rx = 64; ry = 64;
rx2 = rx+256; ry2 = ry+256;
graphics.drawRect(rx,ry, rx2-rx, ry2-ry);
if (ax > rx2) { addImp(a, ax,ay, -1, 0); }
if (ax < rx) { addImp(a, ax,ay, 1, 0); }
if (ay > ry2) { addImp(a, ax,ay, 0, -1); }
if (ay < ry) { addImp(a, ax,ay, 0, 1); }
if (bx > rx2) { addImp(a, bx,by, -1, 0); }
if (bx < rx) { addImp(a, bx,by, 1, 0); }
if (by > ry2) { addImp(a, bx,by, 0, -1); }
if (by < ry) { addImp(a, bx,by, 0, 1); }
}//onenter
public function addImp(a:xObj, ax:Number, ay:Number,ix:Number,iy:Number):void
{
a.vx += ix; a.vy += iy;
var ta:Number;
ta = ((ax - a.cx) * iy) - ((ay - a.cy) * ix);
a.vang += ta * 0.0001;
}//addimp
}//classend
}
internal class xObj
{
public var cx:Number = 0; public var cy:Number = 0; public var ang:Number = 0;
public var vx:Number = 0; public var vy:Number = 0; public var vang:Number = 0;
public var width:Number = 64;
}//xobj