iphone cocos2d-iphone polygon retina-display box2d-iphone

iphone - Desajuste de polígonos y sprites personalizados de Box2d



cocos2d-iphone polygon (2)

Es porque cocos2d funciona en puntos (1 punto es 2 píxeles en una pantalla de retina), pero la forma en que box2d dibuja los cuerpos (extracción de depuración) utiliza píxeles. La creación del cuerpo es perfecta (si tuvieras que dar cuenta de la visualización de la retina en eso, tu mundo sería dos veces más grande en ambas dimensiones, dando lugar a diferencias en la física entre dispositivos retina y no retina), pero en cambio necesitas para arreglar su método de extracción de depuración. En algún lugar habrá una línea que finaliza con new GLESDebugDraw(PTM_RATIO); - cambiar eso a new GLESDebugDraw(PTM_RATIO * CC_CONTENT_SCALE_FACTOR()); y deberías ser bueno.

Estoy usando el Editor de Física para crear el Polígono en Box2d. Genera el Polígono y funciona bien en la pantalla no retina, pero no funciona en la pantalla retina ..... He adjuntado la captura de pantalla para ambas pantallas. Ahora, cuando se trata de retina, la pantalla no muestra el polígono sobre el auto esta es la imagen para eso

Aquí está mi código que estoy usando en el Proyecto

CCSprite *car = [CCSprite spriteWithFile:@"opp_car.png"]; [car setPosition:ccp(wSize.width/2+50,wSize.height/2-120)]; [self addChild:car]; b2BodyDef spriteBodyDef; spriteBodyDef.type = b2_dynamicBody; spriteBodyDef.userData = car; spriteBodyDef.position.Set(car.position.x/PTM_RATIO, car.position.y/PTM_RATIO); b2Body *spriteBody = _world->CreateBody(&spriteBodyDef); b2PolygonShape spriteShape; [[GB2ShapeCache sharedShapeCache] addShapesWithFile:@"opp_car-hd.plist"]; [[GB2ShapeCache sharedShapeCache] addFixturesToBody:spriteBody forShapeName:@"opp_car-hd"]; [sprite setAnchorPoint:[[GB2ShapeCache sharedShapeCache]anchorPointForShape:@"opp_car-hd"]];

Cualquier ayuda sería apreciada

Gracias.......


Simplemente agregue [car setPosition: ccp (0,0)];

Funcionará :)