gpt4 book ai didi

objective-c - 如何在 Box2d 中将多个凸多边形设置为一个形状?

转载 作者:行者123 更新时间:2023-11-29 11:12:03 27 4
gpt4 key购买 nike

我是Box2d的新手,刚刚了解到它不支持凹多边形。我已阅读解决此问题的方法,我应该使用 2 个(或更多)凸多边形并将它们应用于相同的形状。

不幸的是,我花了一个小时寻找如何执行此操作的示例,但找不到有效的示例。这是我的代码:

b2PolygonShape spriteShape;    
int num = 6;
b2Vec2 verts[] = {
b2Vec2(-32.5f / PTM_RATIO, 52.0f / PTM_RATIO),
b2Vec2(-60.0f / PTM_RATIO, 26.5f / PTM_RATIO),
b2Vec2(-58.5f / PTM_RATIO, 17.5f / PTM_RATIO),
b2Vec2(-34.5f / PTM_RATIO, 7.5f / PTM_RATIO),
b2Vec2(-11.0f / PTM_RATIO, 25.0f / PTM_RATIO),
b2Vec2(-17.5f / PTM_RATIO, 47.5f / PTM_RATIO)
};
spriteShape.Set(verts, num);

int num2 = 6;
b2Vec2 verts2[] = {
b2Vec2(-26.5f / PTM_RATIO, 1.0f / PTM_RATIO),
b2Vec2(-34.0f / PTM_RATIO, -13.5f / PTM_RATIO),
b2Vec2(-26.5f / PTM_RATIO, -32.0f / PTM_RATIO),
b2Vec2(0.5f / PTM_RATIO, -42.5f / PTM_RATIO),
b2Vec2(49.0f / PTM_RATIO, -40.5f / PTM_RATIO),
b2Vec2(49.5f / PTM_RATIO, -14.0f / PTM_RATIO)
};
spriteShape.Set(verts2, num2);

这只是用第二个多边形覆盖第一个多边形,而不是组合它们。我该如何组合它们?

最佳答案

正如 iforce2d 所说,您应该创建多个灯具。请看我对这个问题的回答: Box2d multiple fixtures and positioning

关于objective-c - 如何在 Box2d 中将多个凸多边形设置为一个形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11085771/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com