我正在为 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 向我展示了我为 armv6、armv7 编译时使用的 X、Y 坐标系与我仅为 armv7(优化)编译时使用的坐标系不同。
我怎样才能解决这个问题?在设备上测试时使用 armv6、armv7 使用的坐标系的唯一方法是……(这在模拟器上不起作用)?我无法为 iPhone 上传应用程序并仅为 armv7 编译(优化)。:(