Давай по порядку:
Предположим, что есть лестница. Чтобы игрок по ней взбирался быстрее, т.е. выталкивался обработчиком столкновений, надо увеличить радиус "ног игрока" (scenePlayer). Однако, из-за этого игрок перестает проходить, например в двери (если деревья или обстановку в доме можно расставить по шире, то квадратные двери смотрятся нелепо).
|
Смотрим справку
EntityRadius
EntityRadius entity,x_radius#[,y_radius#]
Параметры
entity - указатель объекта
x_radius# - радиус по оси x эллипсоида зоны столкновений
y_radius# (optional) - радиус по оси y эллипсоида зоны столкновений. Если не указано, то будет использоваться значение параметра x_radius# (будет сфера).
|
Простой выход: используем разную ширину и высоту (передаём два параметра)
Так же малое значение радиуса позволяет подойти близко к стене и "заглянуть" через нее (это лечится заданием небольшого значения перового параметра в CameraRange).
|
CameraRange лучше особенно не трогать, используй
ScaleEntity sceneCamera, 0.1, 0.1, 0.1
Для гравитации сделай вертикальную скорость. Отнимай от скорости величину гравитации каждый цикл. Если игрок столкнётся с полом - скорость равна 0, для прыжка вверх один раз прибавь положительное число.
Каждый цикл используй
MoveEntity scenePlayer, 0, <вертикальная скорость>, 0