Возможно, вы хотите попробовать работать с некоторыми материалами ускорения.
Давайте подумаем о гравитации на земле (a = 9,81 м/с²). Если вы бросаете мяч прямо в небо, Ball начинает со скорости: скажем 5 метров в секунду (положительная скорость). Спустя короткое время сила тяжести тянет скорость мяча до 0, поэтому мяч не может подняться выше. Сразу после этого гравитация тянет мяч вниз, пока он не ударится о землю. (Отрицательная скорость)
Если мы говорим об этом в игре, где мяч не перемещается вверх или вниз, а слева направо, вы можете использовать что-то вроде этого. Момент, когда вы бросаете мяч, - это момент в игре, в который вы посылаете команду, чтобы изменить направление. Мяч продолжает двигаться в направлении, где он раньше двигался, замедляется, останавливается, меняет направление и, наконец, становится все быстрее и быстрее, пока вы не отправите другую команду, чтобы снова изменить направление (или оно попадает на стену/землю). В этом случае вам нужно инвертировать ускорение, которое вы хотите использовать, поэтому все это повторяется по-другому.
Если мяч должен двигаться вправо, положительное ускорение, , если мяч должен двигаться влево, отрицательное ускорение.
В формуле вы можете использовать что-то вроде
v = (int) (a * t + v0);
v0 = v;
V является следующей скоростью, а является ускорением вы хотите использовать, т является отработанным временем и v0 является текущей скоростью. t следует считать нано-время с момента последнего изменения направления. (int) отличает целое к целому числу, поэтому вы можете использовать это непосредственно для перемещения шара/графики на экране.
Повторите это каждый кадр.
Для изменения направления вы можете использовать
t = 0;
a = a * (-1);
т должен быть 0 раз, в противном случае он получает багги. Надеюсь, это было полезно.
Это называется «инерция». – ceejayoz
@ceejayoz Как мне подражать этому в наборе спрайтов ... используя физику? –
Если узел идет в одну сторону, и вы продолжаете применять импульс в противоположном направлении, узел будет замедляться и в конечном итоге ускоряться снова. Какой импульс вы применяете, определяет, как быстро замедляется и ускоряется эффект, используйте низкий импульс для льда и тот, который в пару раз больше для других поверхностей. – LearnCocos2D