目前,我创建一个b2Fixture像这样:
b2PolygonShape spriteShape;
int num = 3;
b2Vec2 verts[] = {
b2Vec2(-29.5f / PTM_RATIO, -49.0f / PTM_RATIO),
b2Vec2(10.0f / PTM_RATIO, -49.0f / PTM_RATIO),
b2Vec2(34.2f / PTM_RATIO, -9.2f / PTM_RATIO),
};
spriteShape.Set(verts, num);
bodyFixture.shape = &spriteShape;
bodyCharacter->CreateFixture(&bodyFixture);
问题在于,在视网膜显示器上,它的尺寸似乎加倍了,这是否有原因,如果是的话,我该如何制作使其尺寸保持不变,以免在任何设备上弄乱?
谢谢!
最佳答案
我面临着和你一样的问题。我将内容比例因子乘以PTM_RATIO。
您可以尝试下面的代码并进行检查...对我有用
int num = 3;
b2Vec2 verts[] = {
b2Vec2(-29.5f / ( PTM_RATIO * CC_CONTENT_SCALE_FACTOR() ), -49.0f / ( PTM_RATIO * CC_CONTENT_SCALE_FACTOR() )),
b2Vec2(10.0f / ( PTM_RATIO * CC_CONTENT_SCALE_FACTOR() ), -49.0f / ( PTM_RATIO * CC_CONTENT_SCALE_FACTOR() )),
b2Vec2(34.2f / ( PTM_RATIO * CC_CONTENT_SCALE_FACTOR() ), -9.2f / ( PTM_RATIO * CC_CONTENT_SCALE_FACTOR() )),
};