Недавно я пытался создать то, что я всегда хотел, но никогда не имел навыков и времени - компьютерной игры. Точнее, дань/клон одной из многих моих любимых игр. Чтобы начать с чего-то простого, я решил создать классическую 2D-платформу на основе серии Castlevania.возникли проблемы с настройкой простых прямоугольных столкновений в chipmunk
Будучи программистом Ruby, я решил использовать Gosu. Тогда я решил, что не хочу изобретать велосипед, поэтому я буду использовать Chipmunk.
Через несколько дней у меня возникли необъяснимые проблемы с обнаружением столкновений. Я добавил функции рисования границ, чтобы увидеть, что происходит.
Как вы можете видеть, Belmont сталкивается с блоками стен он не отдаленно близко к трогательным. Поскольку демо-игра, содержащаяся в gosu gem, отлично работает, должно быть что-то не так, как я делаю, я, вероятно, не очень понимаю, как многоугольник Shape
определен и добавлен в пространство. Я почти уверен, что на самом деле это не то, на что я его рисую.
Существует публичное репо с игрой, поэтому вы можете увидеть, как стены (Brush < Entity
) и игрок (Player < Entity
) определены и что у них действительно есть простая прямоугольная многоугольная фигура. Стены не добавляются в пространство (это rogue), только игрок есть. Я пробовал отлаживать игру и видеть, где находится позиция body
, но все выглядело отлично.
https://github.com/ellmo/castellvania
Игрок падает медленно, но вы можете контролировать его с вверх/влево/вправо. Кнопка Tilde (~
) показывает, что боксерские ящики и ящики с коллизиями должны быть всегда видны.
Мне нужна помощь, чтобы понять, что я делаю неправильно.