最近我一直在推動我的JavaScript的知識,通過結合Processing.js和Box2D.js庫,使一些巧妙的基於瀏覽器的模擬。Box2d.js與Processing.js
有了我現在的想法,我想允許用戶單擊並拖動形狀,然後讓它掉落一旦釋放鼠標。到目前爲止,我已經能夠弄清楚如何使用b2MouseJoint對象來操作與mouseX/mouseY的身體協調,但它不是做得比較工作,以充分的程度。
所有這一切發生在一個形狀被點擊是被牽制和周圍什麼都mouseX/mouseY的一點是在點擊時的電流旋轉。
void mousePressed(){
for(int i = 0; i < circles.size(); i++){
//Get body objects from ArrayList
var obj = circles[i];
// Retrieve shapes from body
var innerShape = obj.GetShapeList();
var rad = innerShape.m_radius;
// Create mouseJoint and add attributes
var mouseJoint = new b2MouseJointDef();
mouseJoint.body1 = world.GetGroundBody();
// Detect body
if(dist(mouseX,mouseY,obj.m_position.x,obj.m_position.y) < rad){
Vec2 p = new b2Vec2(mouseX,mouseY);
mouseJoint.body2 = obj;
mouseJoint.target = p;
mouseJoint.maxForce = 10000.0f * obj.GetMass();
mouseJoint.collideConnected = true;
mouseJoint.dampingRatio = 0;
mouseJoint.frequencyHz = 100;
world.CreateJoint(mouseJoint);
}
}
}
所以基本上我的問題是,怎麼能這樣寫,而不是僅僅寄託形狀到位,使身體/外形沿用我的鼠標的座標,而我有鼠標按住。
乾杯