1

私はゲームを書いています。ユーザーが画面の左側に触れるとプレーヤーは左に移動し、ユーザーが画面の右側に触れるとプレーヤーは右に移動します。

現在、プレーヤーは最初に画面に触れたときにのみ移動します。ユーザーが画面に指を置いている間、力を加えたいのですが...これに対するAPI呼び出しが見つからないようです。私は何をしなければなりませんか?

- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    [self handleFrankMove:touches withEvent:event];
}

-(void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    [self handleFrankMove:touches withEvent:event];
}

-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    [self handleFrankMove:touches withEvent:event];
}
4

1 に答える 1

0

移動をどのように実装したかはわかりませんが、touchesBegan では、スプライトで CCMoveTo アクション (画面の端) を開始でき、ccTouchesEnded では、スプライトで stopAllActions を実行できます (または、慎重に行った場合は特定のアクションを停止します)。ハンドルを握ってください)。繰り返しになりますが、その猫の皮を剥ぐ多くの方法は、実装する全体的なゲーム ロジックと UI 戦略に大きく依存します。

編集: CCActions に依存しない方法を次に示します。

いつ: onTouchesBegan:

[self schedule:@selector(keepPushingFrank:) interval:.2]; // interval up to you, experiment

いつ: onTouchesEnded または onTouchesCancelled

[self unchedule:@selector(keepPushingFrank:)]

いつ: onTouchesMoved:

[self computeFingerLogicforTouch:_frankTouch]; // you may need this to control
                                               // behaviour in keepPushingFrank

次のようなメソッドを追加します。

-(void) keepPushingFrank:(ccTime) dt{
    // do your thing with box2D to change forces
    // on Frank. you may want to setup some iVars
    // to compute 'finger intention' when it moves
    // and apply physics accordingly (dont know your 
    // app).

}
于 2012-10-11T21:54:52.307 に答える