Я пишу игру для iPhone / iPodTouch (использую Cocos2d) и заметил кое-что странное ...
Мне нужно определить части экрана, к которым игрок прикасается, чтобы выполнить определенные действия.
Например:
-(void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event {
CGPoint touchLocation = [touch locationInView:[touch view]];
//DEBUG
CCLOG(@"Button pressed: X Location: %f",touchLocation.x);
CCLOG(@"Button pressed: Y Location: %f",touchLocation.y);
...
И когда touchLocation.x и touchLocation.y находятся в определенном диапазоне, я что-то делаю.
Работало на симуляторе нормально. Когда я скомпилировал его для своего тестового устройства, используя архитектуру armv7 (оптимизированную), он также работал. Но когда я скомпилировал его с помощью armv6 с включенной архитектурой armv7 (чего требует магазин приложений), я заметил, что код больше не работает. CCLOG показали мне, что система координат X, Y, используемая при компиляции для armv6, armv7 ОТЛИЧАЛАСЬ от той, которая использовалась, когда я компилировал только для armv7 (оптимизировано).
Как я могу обойти эту проблему? Является ли единственный способ использовать систему координат, используемую armv6, armv7 при тестировании на устройстве ... (это не работает на симуляторе)? Я не могу загрузить приложение для iPhone и скомпилировать только для armv7 (оптимизировано). (