目前我创建了一个像这样的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);
问题是在视网膜显示器上看起来大小加倍,是否有这样的原因,如果是这样的话,我该如何制作它以使它保持相同的尺寸,这样它就不会搞砸任何设备
谢谢!
答案 0 :(得分:4)
我遇到了与你相同的问题。我已将内容比例因子乘以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() )),
};
答案 1 :(得分:0)
我想PTM_RATIO没有乘以CC_CONTENT_SCALE_FACTOR()。请参阅此article for a number of possible solutions。