【发布时间】:2011-06-06 10:47:11
【问题描述】:
我使用 cocos2d 编写了一些游戏,但它们都是由加速度计控制的,并且只使用简单的触摸事件。我需要做的就是在任何地方触摸屏幕时进行注册。我不需要有关位置或速度的任何信息。角色当前在屏幕上移动,用户应该能够触摸以使角色在屏幕上向上移动。当前代码无法按预期工作。角色不受触摸的影响,它只是继续向下移动屏幕。请指教。下面是我现在尝试使用的代码。
在游戏更新方法中:
if (IsTouched == TRUE) {
SealPositionBasedOnTouchInt = SealPositionBasedOnTouchInt - (100*dt);
}
else {
SealPositionBasedOnTouchInt = SealPositionBasedOnTouchInt + (100*dt);
}
SealSwimming.position = ccp(SealPositionBasedOnTouchInt, SealSwimming.position.y);
触摸事件:
- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
for( UITouch *touch in touches )
{
CGPoint location = [touch locationInView: [touch view]];
location = [[CCDirector sharedDirector] convertToGL: location];
IsTouched = TRUE;
}
}
你会注意到我确实得到了触摸位置,这目前没有用于任何事情,但在示例中。
【问题讨论】:
标签: iphone objective-c xcode cocos2d-iphone