2012-01-13 3 views
2

Я создал два разных tilemap s для простого отображения и отображения сетчатки. Простое обнаружение столкновения дисплея является правильным. Когда я тестирую его на карте отображения сетчатки правильно, но обнаружение столкновения не является правильным.Retina display tilemap обнаружение столкновения в cocos2d iphone

Может ли кто-нибудь мне помочь.

+0

Возможно, вы страдаете одной и той же проблемой, я думаю. Пожалуйста, [проверьте ссылку] (http://stackoverflow.com/questions/8710268/box2d-custom-polygon-and-sprites-mis-matching), помогает ли она. – Marine

ответ

0

Здесь я проверяю на столкновение с помощью этой функции, тогда он хорошо работает на обоих дисплеях.

- (CGPoint)tileCoordForPosition:(CGPoint)position 
{ 
    CGFloat scale = [[UIScreen mainScreen] scale]; 
    NSLog(@"%f",map1.tileSize.height); 
    int y = ((map1.mapSize.height * map1.tileSize.height) - position.y*scale)/map1.tileSize.height+(map1.position.y *scale/map1.tileSize.height); 
    int x =-((map1.position.x *scale)/map1.tileSize.width)+(MainCharacter.position.x*scale/map1.tileSize.width); 
    return ccp(x, y); 
} 
Смежные вопросы