我正在使用此代码根据 UIDevice 的加速度移动“下降”精灵。它工作得很好,但非常滞后,这意味着精灵的位置之间存在跳跃。
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
if(paused)
return;
directionPoint.x += acceleration.x * 100;
}
- (void)update:(ccTime)dt {
if(paused)
return;
directionPoint.y = -500*dt;
CGPoint playerDestinationPoint = player.position;
playerDestinationPoint.x += directionPoint.x;
playerDestinationPoint.y += directionPoint.y;
if(playerDestinationPoint.x < player.contentSize.width/2) {
playerDestinationPoint.x = player.contentSize.width/2;
}
else if(playerDestinationPoint.x > ([[CCDirector sharedDirector] winSize].width - play er.contentSize.width/2)) {
playerDestinationPoint.x = [[CCDirector sharedDirector] winSize].width - player.contentSize.width/2;
}
[player setPosition:playerDestinationPoint];
directionPoint = CGPointMake(0.0, 0.0);
}
我尝试以这种方式使用 CCMoveTo:
- (void)update:(ccTime)dt {
if(paused)
return;
[player stopAllActions];
directionPoint.y = -500*dt;
CGPoint playerDestinationPoint = player.position;
playerDestinationPoint.x += directionPoint.x;
playerDestinationPoint.y += directionPoint.y;
if(playerDestinationPoint.x < player.contentSize.width/2) {
playerDestinationPoint.x = player.contentSize.width/2;
}
else if(playerDestinationPoint.x > ([[CCDirector sharedDirector] winSize].width - player.contentSize.width/2)) {
playerDestinationPoint.x = [[CCDirector sharedDirector] winSize].width - player.contentSize.width/2;
}
id actionMoveTo = [CCMoveTo actionWithDuration:dt position:playerDestinationPoint];
[player runAction:actionMoveTo];
directionPoint = CGPointMake(0.0, 0.0);
}
但精灵根本不会移动。有什么提示吗?
制造商,
侧滑