スプライトを正確なピクセル位置に移動させたい。update メソッドで次のコードを使用して、スプライトを移動します (kPlayerSpeed = 60.0f):
if (ccpDistance(self.position, requestedPosition) < kPlayerSpeed) {
[self changeState:kStateWalking];
return;
}
switch (self.characterState) {
case kStateWalkingUp:
self.position = ccp(self.position.x, self.position.y + kPlayerSpeed * deltaTime);
break;
case kStateWalkingDown:
self.position = ccp(self.position.x, self.position.y - kPlayerSpeed * deltaTime);
break;
case kStateWalkingLeft:
self.position = ccp(self.position.x - kPlayerSpeed * deltaTime, self.position.y);
break;
case kStateWalkingRight:
self.position = ccp(self.position.x + kPlayerSpeed * deltaTime, self.position.y);
break;
case kStateIdle:
break;
default:
break;
if (ccpDistance(self.position, requestedPosition) < kPlayerSpeed)
このコードを使用すると、プレーヤーは近くで停止しますが、その場で正確には停止しません。