2013-03-11 2 views

ответ

1

Если это прямая линия (с простыми поворотами на 90 градусов), то спрайт, вероятно, самый простой.

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

Если он ворочался нерегулярным образом, то Я бы предложил использовать 3d примитивы.

+0

Спасибо! Я не уверен, как я могу нарисовать пунктирную линию со спрайтом. Есть ли способ скопировать нарисованный спрайт (иметь одну длинную строку и закрепить ее соответственно?) Или мне нужно нарисовать несколько спрайтов (по одному на каждый сегмент) и повторить их (кажется, субоптимально?) – adrin

+0

Две возможные опции для меня есть весь белый спрайт и рисование его с интервалом ... или с одним спрайтом с одним или несколькими пробелами в текстуре и масштабированием с текстурой, установленной для обертывания. – lzcd

5

Пользователь C3 на bitbucket опубликовал хороший класс полезности для создания 2D примитивов. Они добавляют методы расширения к классу SpriteBatch. Хранилище находится здесь: https://bitbucket.org/C3/2d-xna-primitives/wiki/Home


Добро пожаловать

Добро пожаловать в новый дом проекта 2D XNA Примитивы, теперь используя Mercurial репозиторий Bitbucket! Теперь совместим с телефонами Windows.

Справочник по функциям

Все открытые методы, предоставляемые этой библиотекой, являются методами расширения, что означает, что вы можете получить доступ к ним непосредственно через свой собственный экземпляр SpriteBatch, как если бы были построены в к SpriteBatch эти методы класс. Если вы вызовете методы таким образом, вы можете игнорировать первый параметр всех следующих вызовов.

Общедоступные методы

DrawArc

DrawCircle

DrawLine

DrawRectangle

FillRectangle

PutPixel

0

Перерыв проблема на две части.

1) Определите форму кривой, если она не является прямой линией.

2) Вдоль этой кривой создайте треугольную полосу с текстурой, которую вы хотите от пунктирной линии.