forked from: forked from: Box2D Magnet
♥0 |
Line 41 |
Modified 2013-02-26 12:54:47 |
MIT License
archived:2017-03-20 14:06:01
ActionScript3 source code
/**
* Copyright ohisama ( http://wonderfl.net/user/ohisama )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/Zvt8
*/
// forked from luciano.crescente's forked from: Box2D Magnet
// forked from shapevent's Box2D Magnet
package
{
import flash.display.*;
import flash.events.*;
import com.actionsnippet.qbox.*;
import Box2D.Common.Math.*;
public class FlashTest extends MovieClip
{
private var sim : QuickBox2D;
private var big : QuickObject;
private var little : QuickObject;
private var dir : b2Vec2;
public function FlashTest()
{
sim = new QuickBox2D(this);
sim.createStageWalls();
big = sim.addBox({x : 7, y : 5, density : 0, friction : 0.5});
little = sim.addCircle({x : 3, y : 12, radius : 1, density : 0.1, friction : 5});
sim.start();
addEventListener(Event.ENTER_FRAME, onLoop);
dir = new b2Vec2();
}
private function onLoop(evt : Event) : void
{
var ang : Number = angle(big, little);
var maxDist : Number = 100;
var intensity : Number = 2;
var currVel : b2Vec2 = little.body.GetLinearVelocity();
dir.x = currVel.x + intensity * Math.cos(ang);
dir.y = currVel.y + intensity * Math.sin(ang);
big.angle += 0.05;
little.body.SetLinearVelocity(dir);
}
private function angle(a : QuickObject, b : QuickObject) : Number
{
var dx : Number = a.x - b.x;
var dy : Number = a.y - b.y;
return Math.atan2(dy, dx);
}
}
}