mirror of
https://github.com/logsol/chuck.js.git
synced 2026-05-11 10:37:34 +00:00
84 lines
2 KiB
JavaScript
84 lines
2 KiB
JavaScript
var bodiesNum = 3;
|
|
var world;
|
|
|
|
var xport = 8003;
|
|
var xhost = 'fuuuuu.de';
|
|
|
|
var b2Vec2 = Box2D.Common.Math.b2Vec2,
|
|
b2AABB = Box2D.Collision.b2AABB,
|
|
b2BodyDef = Box2D.Dynamics.b2BodyDef,
|
|
b2Body = Box2D.Dynamics.b2Body,
|
|
b2FixtureDef = Box2D.Dynamics.b2FixtureDef,
|
|
b2Fixture = Box2D.Dynamics.b2Fixture,
|
|
b2World = Box2D.Dynamics.b2World,
|
|
b2MassData = Box2D.Collision.Shapes.b2MassData,
|
|
b2PolygonShape = Box2D.Collision.Shapes.b2PolygonShape,
|
|
b2CircleShape = Box2D.Collision.Shapes.b2CircleShape,
|
|
b2DebugDraw = Box2D.Dynamics.b2DebugDraw,
|
|
b2MouseJointDef = Box2D.Dynamics.Joints.b2MouseJointDef;
|
|
|
|
function setupWorld() {
|
|
world = new b2World(new b2Vec2(0, 10), true);
|
|
|
|
var fixDef = new b2FixtureDef;
|
|
fixDef.density = 1.0;
|
|
fixDef.friction = 0.5;
|
|
fixDef.restitution = 0.01;
|
|
|
|
var bodyDef = new b2BodyDef;
|
|
|
|
// create ground
|
|
bodyDef.type = b2Body.b2_staticBody;
|
|
fixDef.shape = new b2PolygonShape;
|
|
fixDef.shape.SetAsBox(20, 2);
|
|
|
|
bodyDef.position.Set(10, 400 / 30 + 1.8);
|
|
|
|
world.CreateBody(bodyDef).CreateFixture(fixDef);
|
|
bodyDef.position.Set(10, -1.8);
|
|
|
|
world.CreateBody(bodyDef).CreateFixture(fixDef);
|
|
fixDef.shape.SetAsBox(2, 14);
|
|
|
|
bodyDef.position.Set(-1.8, 13);
|
|
world.CreateBody(bodyDef).CreateFixture(fixDef);
|
|
|
|
bodyDef.position.Set(21.8, 13);
|
|
world.CreateBody(bodyDef).CreateFixture(fixDef);
|
|
|
|
// create some objects
|
|
bodyDef.type = b2Body.b2_dynamicBody;
|
|
|
|
for(var i = 0; i < bodiesNum; i++) {
|
|
fixDef.shape = new b2PolygonShape;
|
|
fixDef.shape.SetAsBox(0.5, 0.5);
|
|
|
|
bodyDef.position.x = (i + 1) * 4;
|
|
bodyDef.position.y = 3;
|
|
|
|
bodyDef.userData = {
|
|
'bodyId': i + ''
|
|
};
|
|
|
|
world.CreateBody(bodyDef).CreateFixture(fixDef);
|
|
}
|
|
}
|
|
|
|
function jump() {
|
|
var body = findBody(1);
|
|
body.SetAwake(true);
|
|
body.ApplyImpulse(new b2Vec2(0, -9), body.GetPosition());
|
|
}
|
|
|
|
function findBody(index) {
|
|
var body = null;
|
|
|
|
var nextBody = world.GetBodyList();
|
|
for (var i = 0; i < bodiesNum; i++) {
|
|
if (nextBody.GetUserData().bodyId == index) { body = nextBody; break; }
|
|
nextBody = nextBody.GetNext();
|
|
}
|
|
|
|
return body;
|
|
}
|
|
|