実際には、ボタンが押されている限りスプライトを移動する必要があり、ボタンを離すとスプライトを停止する必要があります。
私のコードは以下の通りです:
CCMenuItemFont *item1 = [CCMenuItemFont itemFromString: @"icon.png" target:self selector:@selector(doit)];
CCMenu * taskMenu = [CCMenu menuWithItems:item1, nil];
[self addChild:taskMenu];
-void()doit
{
spritevelocity = 80;
}
上記のコードは、ボタンがタップされたときにスプライトを動かし続けますが、ボタンが離されるとすぐにスプライトを停止する必要があります。
以下のコードを試しましたが、成功しませんでした:
-void()doit
{
buttonpressed = YES;
if (buttonpressed) {
spritevelocity = 80;
}
}
- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
buttonpressed = NO;
}
注:スプライトを停止するために spritevelocity = 0 にしたかっただけです。つまり、ボタンが離されたときに spritevelocity = 0 が必要です