Показать сообщение отдельно
Старый 04.01.2010, 05:04   #12
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,743
Написано 5,461 полезных сообщений
(для 15,676 пользователей)
Сообщение Ответ: Подскажите

Сообщение от NitE Посмотреть сообщение
эмм, у меня почти "стандарт", а у тебя уже переделка - которая по сути ненужна потомучто делает всё тоже.
Стандарт конца 1980-х.
Саб тож чот мудрёно написал.
На самом деле всё делается на основе элементарных принципов раздела механики - кинематики, попробую объяснить популярно и максимально понятно даже ежу.
Есть ускорение свободного падения g (пусть оно положительное)
Есть у персонажа скорость V по вертикали, то есть по оси Y. (пусть положительное направление оси - вниз)
Персонажа по оси Y нужно двигать в соответствии с его скоростью по вертикали V. То есть например скорость 1 - вот и сдвинули по оси Y на 1.
И каждый же раз увеличивать скорость на g. То есть чем дольше персонаж падает, тем быстрее он это делает: скорость-то увеличивается.
Когда персонаж коснётся земли, движение его вниз отключаем к чёртовой бабушке, скорость ставим на 0 и не трогаем, а то, чего доброго, сквозь землю провалится.
То есть получается, что уравнение, описывающее лодинату персонажа, выглядит так:
Y = Y0 + V0*t + gt^2/2
Где Y0 - начальное положение по оси Y
t - время
Уравнение скорости V получаем дифференцированием уравнения ординаты Y по времени t:
V = V0 + gt
Опять же, дифференцированием по t данного уравнения находим, что ускорение - есть константа :
a = g
В момент, когда надо сделать прыжок - выставляем скорость персонажа на какое-то отрицательное значение (как мы помним, направление оси вверх - это отрицательные значения) и видим, как он, летя вверх, сначала замедляется, а потом уже летит вниз, пока не коснётся земли.
Значения g и V в момент прыжка подбирать экспериментально.
Никаких точных рекомендаций по детектированию "коснулся ли персонаж земли или нет?" дать не могу, так как хз как у тебя выглядит земля в коде/на экране (телепаты в отпуске, наглецы, уже не один месяц). В самом примитивном случае - плоская земля и тогда проверка сводится к сравнению ординаты со значением высоты земли.

И да, не удивляйся ответам в начале темы в стиле капитана очевидность: описание вопроса в первом посте было настолько "подробным", что можно только послать.
Формулируй вопросы чётко и подробно.
И называй тему так, чтобы она кратко отражала своё содержание.
Между прочим, за названия топиков типа "Помогите", "Подскажите", "Вопрос" и т.д., т.е. не понять, о чём собственно тема, положен банан.
В следующий раз применим.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
LLI.T.A.L.K.E.R. (05.02.2010)