FiqStudios's Banner

FiqStudios

Reviews News Main
FiqStudios

Age/Gender: n/a, Male
Location: New Mexico
Job: Student

Rusty Air.

Contact Info

Newgrounds Stats

Sign-Up Date:
12/23/07

Level: 8
Aura: Dark

Rank: Scout
Blams: 56
Saves: 154
Rank #: 40,845

Whistle Status: Garbage

Exp. Points: 590 / 710
Exp. Rank #: 75,644
Voting Pow.: 5.00 votes

BBS Posts: 664 (0.44 per day)
Flash Reviews: 2
Music Reviews: 0
Trophies: 0

Latest News

FiqStudios

Let's see you make a better physics engine.

Posted by FiqStudios Mar. 8, 2008 @ 4:58 AM EST

WEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.

Click - Add new point.
Scroll - Increase/Decrease distances.
Ctrl - Delete oldest point
Shift - Delete newest point.

It took me a while, but I studied up on "Node Code" and came out pretty good. I'm trying to find a way to turn it into a game, but I don't want to get distracted. Doing this in C++ for performance increase is a possibility.

_______________________

stage.quality = "LOW";
var xlimit:Number = stage.stageWidth;
var ylimit:Number = stage.stageHeight;
var points:Array = new Array();
var i:int = 0;
var j:int = 0;
var gf:Number = .2;
var fr:Number = .1;
var sf:Number = .009;
var bn:Number = -.8;
var md:Number = 110;

stage.addEventListener(MouseEvent.MOUS E_DOWN, mouseDown);

function mouseDown(evnt:MouseEvent):void {

var point:Array = new Array(new Point(mouseX,mouseY),0,0);
points.push(point);

}

stage.addEventListener(Event.ENTER_FRA ME, enterFrame);

function enterFrame(evnt:Event):void {

graphics.clear();
graphics.lineStyle(1,0xFFFFFF,.07);
for (i=0; i<points.length; i++) {
var p1:Array = points[i] as Array;
p1[1] -= fr*Math.cos(Math.atan2(p1[2], p1[1]));
p1[2] -= fr*Math.sin(Math.atan2(p1[2], p1[1]));
p1[2] += gf;
p1[0].x += p1[1];
p1[0].y += p1[2];
if (p1[0].x>xlimit) {
p1[0].x = xlimit;
p1[1] *= bn;
}
if (p1[0].y>ylimit) {
p1[0].y = ylimit;
p1[2] *= bn;
}
if (p1[0].x<0) {
p1[0].x = 0;
p1[1] *= bn;
}
for (j=i+1; j<points.length; j++) {
var p2:Array = points[j] as Array;
var dx:Number = p2[0].x - p1[0].x;
var dy:Number = p2[0].y - p1[0].y;
if (Math.sqrt(dx*dx+dy*dy) < md) {
p1[1] -= dx*sf;
p1[2] -= dy*sf;
p2[1] += dx*sf;
p2[2] += dy*sf;

}
}
}
for (i=0; i<points.length; i++) {
p1 = points[i] as Array;
for (j=i+1; j<points.length; j++) {
p2 = points[j] as Array;
graphics.moveTo(p1[0].x, p1[0].y);
graphics.lineTo(p2[0].x, p2[0].y);
}
}

}

stage.addEventListener(KeyboardEvent.K EY_DOWN, keyDown);

function keyDown(evnt:KeyboardEvent):void {

if (evnt.keyCode == 17) {
points.splice(0,1);
}
if (evnt.keyCode == 16) {
points.splice(points.length-1,1);
}

}

stage.addEventListener(MouseEvent.MOUS E_WHEEL, mouseRoll);

function mouseRoll(evnt:MouseEvent):void {

md += evnt.delta;

}

dfsdfsf.JPG

All News Posts 5 comments | Log in to comment! | Share this!