art*_*mis 0 iphone xcode cocos2d-iphone armv7 armv6
我正在为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);
Run Code Online (Sandbox Code Playgroud)
...当touchLocation.x和touchLocation.y都在一定范围内时,我会做一些事情.
它在模拟器上工作得很好.当我为我的测试设备编译它时,使用armv7架构(优化)它也有效.但是当我使用armv6编译它时,启用了armv7架构(这是应用商店需要的),我注意到代码不再有效.CCLOG向我展示了我为armv6编译时使用的X,Y坐标系统,armv7与我仅为armv7(优化)编译时所使用的不同.
我怎样才能解决这个问题?是在设备上测试时使用armv6,armv7使用的坐标系的唯一方法......(这在模拟器上不起作用)?我无法上传iPhone的应用程序,只能编译为armv7(优化).:(
小智 5
要在cocos2d中查找屏幕上的触摸,请尝试此代码.它在我的游戏应用程序中正常工作
- (void)ccTouchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
UITouch *myTouch = [touches anyObject];
CGPoint location = [myTouch locationInView:[myTouch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
}
Run Code Online (Sandbox Code Playgroud)