b2PolygonShape / b2Fixture视网膜显示尺寸加倍?

时间:2012-01-19 22:44:03

标签: ios cocos2d-iphone box2d shape

目前我创建了一个像这样的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);

问题是在视网膜显示器上看起来大小加倍,是否有这样的原因,如果是这样的话,我该如何制作它以使它保持相同的尺寸,这样它就不会搞砸任何设备

谢谢!

2 个答案:

答案 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