Извлечение краев текстуры в массив для обнаружения столкновений - PullRequest
0 голосов
/ 19 января 2011

Я нахожусь на ранних стадиях создания 2D-игры как своего рода занятия в свободное время.

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

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

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

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

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

An image of what I mean

1 Ответ

0 голосов
/ 21 ноября 2011

Я бы использовал более старые версии Farseer Physics, доступные на странице загрузки, последняя старая версия - 2.1.3

Затем взгляните на документацию по этому вопросу: http://www.farseergames.com/storage/farseerphysics/Manual2.1.htm#_Toc213068512

Попробуйте разбить карту на более мелкие кусочки, чтобы воссоздание было как можно меньше.И попробуйте не редактировать отдельные пиксели ландшафта, используйте RenderTarget2D.

. Имеются перегрузки в Vertices.CreatePolygon(), который выводит список <> массивов Vertice.

Я что-то сделалпохоже, но с 3D-рельефом, но он был всего около 64x64 пикселей.

...