IgorBee
@IgorBee
JS,VBS,3D.Web с 07.2015

Как реализовать притяжение (гравитацию) к земле,при условии что ты не на объекте стоишь?

linewire.ru/t/Mario_game/Mario_game.html

8fff5571065d45e398b5fe9e05a93985.png
Думаю прописать если mario.Y выше "земли" то включать "притяжение" mario.Y=20 допустим,тока не понятно как чекать что я не стою на поверхности какого-нибудь камня или ещё кого либо coord.top.

объектов же куча,не буду же я в условие каждого прописывать,может массив сделать и чекать массив или что?
пример можете показать кода пожалуйста?
  • Вопрос задан
  • 492 просмотра
Решения вопроса 1
maaGames
@maaGames
Погроммирую программы
Проверять именно с каждым камнем. Но не вообще с каждым камнем на уровне, а только с теми, которые "рядом". Условно, можно разделить уровень на ячейки и в каждой ячейке попадается несколько камней. Проверять столкновения нужно будет только с теми камнями, котоыре в той же ячейке, что и игрок.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
гм, в физических движках это делается примерно так - есть динамический объект, на него действуют заданные силы например гравитация, действуют всегда. И есть статические объекты на которые эти силы не действуют. Плюс специальное свойство типа collision то есть взаимодействия с другими объектами. Отталкивать их, просто не пропускать и тп. Так что в твоем случае камни земля и прочее что не должно двигаться это статические объекты с коллизией а марио это динамический объект на который действует сила гравитации и других перемещений.
Ответ написан
Комментировать
@Caitiff_One
Обычный человек, начинающий разработчик:)
чекаешь перед движением вниз под действием гравитации есть ли там объект, если есть, то двигаться некуда, ты стоишь, скорость = 0. как-то так если в двух словах
Ответ написан
@Gregpopov
Full stack web developer
Добавляй состояние в духе
onLand = true||false
для Марио
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы