Node.js v0.10.35를 사용하고 디버그 모듈 ("npm install debug"사용)을 설치했습니다. 다음은은 "안녕하세요 LiquidFun"나는 liquidfun.js에 다음 줄을 추가,이 일을하려면 https://google.github.io/liquidfun/Programmers-Guide/html/md__chapter02__hello__box2_d.html
var lf=require('./liquidfun.js');
var debug=require('debug')('liquidfun');
var gravity = new lf.b2Vec2(0,-10);
var world = new lf.b2World(gravity);
lf.setWorld(world);
var groundBodyDef = new lf.b2BodyDef();
groundBodyDef.position.Set(0,-10);
var groundBody = world.CreateBody(groundBodyDef);
var groundBox = new lf.b2PolygonShape();
groundBox.SetAsBoxXY(50,10);
groundBody.CreateFixtureFromShape(groundBox,0);
var bodyDef = new lf.b2BodyDef();
bodyDef.type= lf.b2_dynamicBody;
bodyDef.position.Set(0,4);
var body=world.CreateBody(bodyDef);
var dynamicBox = new lf.b2PolygonShape;
dynamicBox.SetAsBoxXY(1,1);
fixtureDef = new lf.b2FixtureDef;
fixtureDef.shape = dynamicBox;
fixtureDef.density = 1;
fixtureDef.friction=0.3;
fixtureDef.restitution=0.5;
body.CreateFixtureFromDef(fixtureDef);
var timeStep=1/60;
var velocityIterations=6;
var positionIteration=2;
for (var i=0;i<60;i++)
{ world.Step(timeStep, velocityIterations, positionIteration);
var position = body.GetPosition();
var angle = body.GetAngle();
debug(position.x+" "+position.y+" "+angle);
}
에서 적응으로, Node.js를 실행으로 liquidfun.js을 테스트하는 데 사용 (I
module.exports = {
b2Vec2: b2Vec2,
b2BodyDef: b2BodyDef,
b2PolygonShape: b2PolygonShape,
b2FixtureDef: b2FixtureDef,
b2World: b2World,
b2_dynamicBody: b2_dynamicBody,
setWorld: function(_world){ world=_world; }
};
주 나는 방법 정의 "setWorld (_world)"을 다시 nodejs 스크립트에서 세계 객체를 전달하는 데 사용됩니다 : 위의 프로그램에 모든 생성자 함수를 내보낼 v1.1.0 개발자)를 사용하고 있습니다 이 모듈에. 그 이유는 liquidfun.js가 변수 "world"를 정의해야한다는 것을 발견했기 때문입니다. (예 : b2World 객체), 예제에서는 모듈 외부에서 "world"를 만들었으므로 다시 전달해야합니다. 그것을 작동하게합니다. 또는 liquidfun.js 모듈에서 "world"를 만들고 nodejs 스크립트로 내보낼 수 있습니다.
그런데 시뮬레이션 결과를 보려면 "DEBUG = liquidfun"환경을 설정해야합니다. Windows의 경우 다음을 입력하여 실행하십시오.
set DEBUG=liquidfun & node hello_liquidfun.js