2011-02-07 2 views
0

В моем iPhone игры (я использую cocos2d, не должны сделать огромную разницу) Я хочу, чтобы он вот так:iPhone - Tilt, чтобы переместить

Вы можете использовать акселерометр для переезда спрайт/игрок экран, с ускорением по мере того, как вы наклоняете больше, а также я хочу, чтобы sprite вращался, чтобы указать в направлении, которое вы наклоняете.

Любая помощь будет оценена, спасибо.

ответ

0

Вы можете использовать физический движок (я предпочитаю Chipmunk, поскольку он имеет более простой API), чтобы применить инерцию и ускорение к системе с двумя корпусами. Прикрепите связку фиксированной длины между телами и примените перетаскивание к обоим телам, но приведите одно тело сильнее, чем другое. Прикрепите спрайт к середине этих двух тел и его угол, соответствующий углу между телами, а «передний» спрайт направлен к телу с меньшим сопротивлением.

Если вы уже используете физический движок, это больше усилий, чем взломать взломы, но будет выглядеть гораздо более естественным для глаз.

EDIT: На более последнем проекте, я разработал технику одного тела с использованием groove joint (не уверен, что эквив Box2D есть) на теле с якорем на мир. Найдите якорь мира от центра тяжести тела и на каждом шаге переместите якорь так, чтобы он оставался в точно таком же относительном положении тела. Чем дальше от центра тяжести вы расположите якорь, тем медленнее тело повернется лицом к направлению движения.

+0

мы можем сделать то же самое с помощью box2d engine? –

+0

@shaqirsaiyed: Любой физический движок, достойный его соли, может это сделать. Обратите внимание, что я добавил лучшую технику для ответа только сейчас. –

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