2013-08-16 24 views
0

我希望能够使用UIAccelerometer移动CCSprite。它只能上下移动。我使用的代码是这样的:使用UIAccelerometer移动CCSprite - cocos2D

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration 
{ 
valueX = acceleration.y * 45.0; 

int newPos = (int)(valueX + _rocket.position.x); 

CGPoint newCenter = ccp(100, newPos); 
_rocket.position = newCenter; 
} 

_rocket是精灵。

当我在iphone上运行它时,它只是在同一个地方震动,而我无法将其移动到顶部或底部。怎么了?

回答

1

尝试int newPos = (int)(valueX + _rocket.position.y);
代替int newPos = (int)(valueX + _rocket.position.x);

根据你的代码position.x始终是100 这就是为什么int newPos = (int)(valueX + _rocket.position.x);不工作。

+0

它现在的作品,谢谢。但是当我向前和向后倾斜iPhone时,它会移动,如果我想让它向左和向右倾斜时(在肖像模式下),我该怎么做? –

+0

我现在没有用mac来测试它,但我认为你应该尝试一样,但是对于position.x而不是position.y – K1laba

+0

啊现在可以正常工作!万分感谢! –