我有一个圆形的动态身体,我需要在游戏过程中调整它(它看起来像一个点,然后它增长到一个圆,然后开始移动)。我应该怎么做? 我有一个想法 - 它是使用一些动画(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