Управление движением игрока после столкновения с пикселем

введите здесь описание изображения

Я реализовал полную попиксельную систему столкновений, учитывающую вращение, и она очень точная. Он возвращает простое логическое значение при столкновении.

Однако я не уверен, как справиться со столкновением с точки зрения движения игрока.

Например. На картинке выше, если игрок держит левый джойстик вверх, он должен быть остановлен, но если он держит вверх + правую диагональ на левом джойстике, он должен скользить на северо-восток вдоль стороны красного квадрата почти естественным образом.

Как мне это сделать, чтобы остановить инерцию игрока, но при этом дать игроку возможность двигаться в направлении, не заблокированном столкновением.

Я мог бы делать подобные вещи с простыми нетрансформированными прямоугольниками, но переход к попиксельному столкновению текстур сегодня заставил мой мозг взорваться, поэтому я надеюсь, что вы, ребята, сможете мне помочь. Любые советы будут оценены по достоинству.


person Qas Piano    schedule 18.04.2013    source источник
comment
Это немного выше моего понимания, но ключевыми словами для поиска являются реакция на столкновение. Также обратите внимание, что здесь также есть сайт разработки игр.   -  person George Duckett    schedule 19.04.2013
comment
Большое спасибо, теперь я выполняю поиск ответа на столкновение для каждого пикселя.   -  person Qas Piano    schedule 19.04.2013


Ответы (1)


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

Для этого вы либо пишете свой собственный игровой движок, либо используете уже существующий движок. Для 2D-игр я настоятельно рекомендую использовать движок Farseer Physics Engine. Это уже давно. Сейчас в стабильном состоянии и это конечно замечательно.

Он разработан с использованием XNA только с нуля, а также с точки зрения производительности он очень хорош.

Посмотри на это! Надеюсь, я смог дать вам ответ. Пожалуйста, дайте мне знать, если потребуется дополнительная информация.

person kunjee    schedule 08.08.2013