2013-08-16 3 views
0

Я хочу, чтобы иметь возможность перемещать CCSprite с помощью UIAccelerometer. Его следует перемещать только вверх и вниз. Код, который я использую, таков:Используйте 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

Я не с матерью прямо сейчас, чтобы протестировать его, но я думаю, что вы должны попробовать то же самое, но вместо position.x вместо position.y – K1laba

+0

ах теперь он отлично работает! Большое спасибо! –

Смежные вопросы