cocos2dを使用してobjective-cでiphoneアプリを作成しています。以下のコードでは、衝突を検出してからアニメーションを実行しようとしています。(box1はタッチで移動します)
「[selfgetChildByTag:d]」と「box1」が衝突して重なると、「JUMPNOW!」が表示されます。表示されますが、ジャンプ自体は取得されませんが、box1を「[selfgetChildByTag:d]」から移動すると、ジャンプが発生します。
これはおそらくアクションが何度も呼び出されるという事実に関係していると理解していますが、何が起こっているのかを正確に説明し、解決策を手伝ってください!
- (void)update:(ccTime)dt {
for (int d = lowestAvailableTag; d <= highestAvailableTag; d++) {
if ([self getChildByTag:d].position.y < (box1.position.y+45)&&
[self getChildByTag:d].position.x > (box1.position.x-45) &&
[self getChildByTag:d].position.x < (box1.position.x+45) ) {
NSLog(@"JUMP NOW!");
if ([self getChildByTag:d].position.x < 150) {
[[self getChildByTag:d] runAction:
[CCJumpTo actionWithDuration:1.5
position:ccp(240, 140) height:110 jumps:1]];
}
}
}
}
//アルバ