Для игры, подобной Peggle , я хочу сделать блоки, которые следуют за кривой, как это:
Блоки тогда исчезнут, поскольку шар поражает их.
Мне удалось нарисовать некоторые по горизонтали, но у меня проблемы с тем, чтобы заставить их следовать по пути:
Как мне это сделать? Нужно ли создавать объекты Box2D с пользовательскими вершинами?
Ответы:
Учитывая «корневую» кривую, вот как вы можете генерировать блочные вершины.
Корневая кривая посередине, черного цвета. Его контрольные точки показаны красным
X
s.Короче говоря : я сделал Безье и пробовал его (с настраиваемой скоростью). Затем я нашел перпендикулярный вектор вектора от каждого образца к следующему, нормализовал его и масштабировал до (настраиваемой) полуширины, сначала влево, а затем обратно вправо. Затем нарисовал его.
Материал, который вы могли бы добавить к этому:
Вот мой код Он написан на Lua (для игровой среды LÖVE ), но я думаю, что он читается для всех.
Если вы хотите поиграть с ним: возьмите LÖVE и поместите приведенный выше код
main.lua
в его собственный каталог. Положитеvector.lua
изHUMP
библиотеки в тот же каталог. Запустите его какlove <that-directory>
из командной строки.Переместите мышь вокруг! Средняя контрольная точка установлена в месте расположения мыши:
источник