我有一個圓形的動態身體,我需要在遊戲過程中調整它(它看起來像一個點,然後它增長到一個圓,然後開始移動)。我應該怎麼做? 我有一個想法 - 它是使用一些動畫(Circle具有相同的半徑,但由於動畫看起來像圈子增長),但我不確定它是否正確。 (此外,我不知道如何去實現它)動態調整身體尺寸(LibGDX)
2
A
回答
2
縮放圈,如果你使用的精靈只是它的規模sprite.setScale(浮動),如果你的精靈連接到Box2D的圓形狀,然後拿到身體的形狀和設置半徑
Shape shape = body.getFixture().getShape;
shape.setRadius(radiusValue);
如果您使用ShapeRenderer只是乘以ShapeRenderer的點。
+0
它不適用於spritehelper levelhelper。我正在使用cocos2d-x v2.2.1。有任何想法嗎? –
2
我假定你正在談論Box2D的身體。
無法用Box2D更改圓形固定裝置。 Box2D是一個剛體身體模擬器。你需要做的是摧毀夾具並用較小/較大版本的圓圈代替它。但是這會造成很多問題,因爲例如當你仍然有接觸時你不能銷燬燈具。
將圓圈保持爲相同的大小會更好,並且只需在頂部使用動畫效果來模擬大小的變化。
如果你不能模擬,那麼可以嘗試下面的方法:有不同大小的圓形的幾個版本,並保持它們在彼此之上。實現一個ContactFilter,它只會導致當前「活動」的一個圓圈的聯繫人。
1
裏面搭配Box2D的任何對象類,我用下面的動態調整:
public void resize(float newradius) {
this.body.destroyFixture(this.fixture);
fixtureDef.density = (float) (this.mass/(Math.PI*newradius*newradius));
this.radius = newradius;
CircleShape circle = new CircleShape();
circle.setRadius(newradius);
this.fixtureDef.shape = circle;
circle.dispose();
this.fixture = body.createFixture(fixtureDef);
this.fixture.setUserData(this);
}
您還可以看到以下主題:How to change size after it has been created
相關問題
- 1. 不需要的身體尺寸調整
- 2. 使身體尺寸
- 3. 根據內容字體大小動態調整UIWebView的尺寸
- 4. 關於調整身體尺寸的jQuery觸發器
- 5. tensorflow - 調整尺寸
- 6. 使「身體尺寸」更大
- 7. 移動和調整表面窗口本身的尺寸
- 8. 當屏幕尺寸減小時自動調整圖像尺寸
- 9. 如何使用Libgdx調整窗口內部的舞臺尺寸
- 10. LibGDX spritebatch調整相對於屏幕尺寸
- 11. 滾動調整UITableView的尺寸
- 12. 調整尺寸的UIView
- 13. Jpanel調整重繪尺寸
- 14. Node.js調整圖像尺寸
- 15. WordPress的環尺寸調整
- 16. 調整佈局的尺寸
- 17. 調整尺寸圖像
- 18. iPhone - 調整UIActionSheet的尺寸
- 19. 調整圖像尺寸PHP
- 20. 可調整的div尺寸
- 21. Java libGDX不同尺寸的動畫幀
- 22. libgdx table padding多種尺寸
- 23. vega-lite:如何動態調整單個地塊的尺寸
- 24. 在asp.net中動態調整圖片的尺寸
- 25. JavaScript - 使用URL片段動態調整iframe跨域的尺寸
- 26. CSS頁面調整後自動重新調整頁面尺寸
- 27. .ipa尺寸大於整體項目尺寸
- 28. 使用Graphics.DrawImage調整圖像尺寸結果尺寸調整不正確
- 29. iPad的身體尺寸的CSS問題
- 30. 我如何獲得JBox2d身體尺寸
是否使用Box2D的,你所談論的身體?也許你可以看看scene2D,它提供了所謂的「動作」,你可以告訴「演員」他應該如何隨着時間的推移而改變。還有一些關於如何使用Box2D的教程。但我從來沒有嘗試過,所以這只是一個建議。 – Springrbua