2016-01-25 98 views
2

enter image description here我想在Box2D Cocos2d JS的附加圖像中創建一個斜坡。 但是,當將精靈附加到它時,我無法正確創建它。 我的代碼是:Box2D Cocos2d JS

new b2Vec2(0, 0), 
new b2Vec2(100/worldScale, -50/worldScale), 
new b2Vec2(200/worldScale, 0/worldScale) 

的圖像尺寸爲200 * 50,和所有的世界運價= 30

+0

嗨,你使用的是什麼版本的Cocos2D-JS? – Jem

+0

嗨,我使用3.7版本。 –

回答

0

首先我看你使用負座標(-50)。 Cocos2d-JS中的所有內容(默認視口)均爲正值({0,0}爲左下角)。

要調試斜率定位,我建議您首先使用Box2d DebugDraw查看您描述的實際斜率,然後根據這些線框放置精靈。 Cocos2d-JS將在更新函數中清除它自己的畫布,因此您需要在DebugDraw上放置另一個調試畫布。

This example helped me to add debug draw to my box2d sandbox successfully

添加以下代碼更新功能

var debugDraw = new Box2D.Dynamics.b2DebugDraw(); 
debugDraw.SetSprite(document.getElementById("test").getContext("2d")); 
// test is the id of another canvas which debugdraw works on 
debugDraw.SetDrawScale(30.0); 
debugDraw.SetFillAlpha(0.3); 
debugDraw.SetLineThickness(1.0); 
debugDraw.SetFlags(Box2D.Dynamics.b2DebugDraw.e_shapeBit | 
Box2D.Dynamics.b2DebugDraw.e_jointBit); 
this.world.SetDebugDraw(debugDraw); this.world.DrawDebugData(); 

Box2D的使用比茯苓不同的座標系,所以你需要做的 改造180度。將此添加到調試畫布的樣式中

-webkit-transform:rotate(180deg); //和一些其他瀏覽器的風格