У меня есть проект, который использует tilemap. У меня есть отдельная табличная карта для low-res (29x29 Tilesize) и high-res (58x58). У меня есть эти методы для вычисления tileCoord в положение и обратно.Плитка к конверсии CGPoint с дисплеем Retina
- (CGPoint)tileCoordForPosition:(CGPoint)position {
int x = position.x/_tileMap.tileSize.width;
int y = ((_tileMap.mapSize.height * _tileMap.tileSize.height) - position.y)/_tileMap.tileSize.height;
return ccp(x, y);
}
- (CGPoint)positionForTileCoord:(CGPoint)tileCoord {
int x = (tileCoord.x * _tileMap.tileSize.width) + _tileMap.tileSize.width/2;
int y = (_tileMap.mapSize.height * _tileMap.tileSize.height) - (tileCoord.y * _tileMap.tileSize.height) - _tileMap.tileSize.height/2;
return ccp(x, y);
}
Я получил это от RayWenderLich и я honeslty не понимаю, как это работает, и почему он должен быть настолько сложным. Но это не работает, когда я использую сетчатые фрагменты, только на 480x320. Может ли кто-нибудь умный придумать способ сделать эту работу для HD? Также не нужно работать с низким разрешением, я не планирую поддерживать суб-iOS 7.
Я хочу, чтобы выход находился в шкале координат с низким разрешением tho, как вы могли бы знать, cocos2d делает изменение размера для HD для вас. (Путем умножения на два)
«Не должны работать на низком разрешении либо, я не планирую поддерживать суб-IOS 7.» Если вы хотите поддержать IPADS изначально, вам нужно низко -res, потому что iPad mini не является сетчаткой, независимо от версии iOS. –
@robmayoff У меня будет еще одна раскадровка и файл кода для ipad, так как я собираюсь сделать что-то особенное, чтобы использовать все это красивое пространство экрана. –