私はこのチュートリアルに従って、タイルベースのマップを作成し、キャラクターを動かしました。次に、このチュートリアルに従って、動きのスプライトアニメーションを追加しました。私は動きのために次のようなものを思いついた:
[self stopAction: cameraMoveAction];
[playerSprite stopAction:playerMoveAction];
[playerSprite runAction: targetAction];
self.playerMoveAction = [CCSequence actions:
[CCMoveTo actionWithDuration: MOVEMENT_SPEED * 4 position: newPosition],
[CCCallFunc actionWithTarget: self selector: @selector(finishedMoving)],
nil
];
self.cameraMoveAction = [CCSequence actions:
[CCMoveTo actionWithDuration: MOVEMENT_SPEED * 4 position: [self calculateNewCenterOfScreen: newPosition]],
nil
];
[self runAction: cameraMoveAction];
[playerSprite runAction: playerMoveAction];
ご覧のとおり、私はプレーヤーとカメラの両方を動かしています(プレーヤーを常に中央に保つため)。また、通話中にカメラをプレーヤーの中央に配置しようとしましたfinishedMoving
が、それは非常に悪く見えました(プレーヤーが移動すると、カメラがプレーヤーの位置に移動します)。
これを行うためのより良い方法はありますか?