请提示,因为可以在物理对象上形成圆形边缘,这些边缘代表顶点? 例如,有一个常规矩形,就是它的描述方式:
b2Vec2 vertices[] = {
b2Vec2(0.0*_scale/PTM_RATIO,0.0*_scale/PTM_RATIO),
b2Vec2(512.0*_scale/PTM_RATIO,0.0*_scale/PTM_RATIO),
b2Vec2(512.0*_scale/PTM_RATIO,32.0*_scale/PTM_RATIO),
b2Vec2(0.0*_scale/PTM_RATIO,32.0*_scale/PTM_RATIO)
};
任何事都可以完善他的优势?
答案 0 :(得分:1)
这可以通过使用多边形形状并设置顶点来表示圆角。然而,这可能需要增加Box2D的内部限制(如果我没记错的话)每个多边形8个顶点。
或者,您可以使用矩形和4个圆形,每个角一个。然而,圆形形状的放置永远不会使得矩形的角不会从圆圈中伸出,圆形的圆圈与矩形的边完全对齐。
答案 1 :(得分:0)
这取决于您需要多少舍入。
您可以使用具有更多顶点的多边形形状,但这需要增加内部限制,这会增加 ALL 多边形形状的默认存储。
您可以使用八角形,角落上有一些圆圈重叠。您可以用两个多边形来构建它,一个用于顶部,一个用于底部(每个5个边,就像一个矩形,两个角被45度斜坡取代)。
但是,我认为最好的方法是使用ChainShape。您可以创建顶点的 LOTS 。在一个SO问题(here)中,我使用其中一个创建了一个轮盘赌轮。链接提供代码和演示。对于大多数需求来说,这绝对是圆形的。
这有用吗?
答案 2 :(得分:0)
我刚刚开始学习Cocos2d-x,所以这可能行不通,但是我认为您可以将节点锚定并固定在一起,以创建所需半径的N个边缘圆,并从圆上的适当切点创建N个边缘,其中N是您想要的拐角数(在OP中为矩形4)。
对于一个圆角框,N = 4,是这样的:
__
O O
| |
O__O