Значение libgdx между спрайтом и актером

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

Сначала я подумал, что scene2d - это создание интерактивных элементов, таких как меню и т.д., но различные обучающие программы, которые я читаю, используют scene2d/players для основных игровых элементов (т.е. игрока и т.д.), а другие просто используют спрайты.

В чем же разница между использованием Sprite и Actor (т.е. scene2D) в игре и когда вы должны выбрать?

Спасибо.

30
08 дек. '12 в 21:53
источник поделиться
2 ответов

A Sprite - это в основном изображение с положением, размером и вращением. Вы рисуете его с помощью SpriteBatch, и как только у вас есть ваш Sprite и ваш SpriteBatch, у вас есть простой, низкоуровневый способ получить 2D-изображения на экране в любом месте. Остальное зависит от вас.

Actor, с другой стороны, является частью графика сцены. Это более высокий уровень, и там гораздо больше, что входит в график сцены, чем просто позиционирование изображений. Корень графа сцены - это Stage, который сам не отображается. Stage представляет собой контейнер для Actors, который вы добавляете к нему, и используется для организации сцены. В частности, входные события передаются вниз через Stage в соответствующий Actor, а Stage знает, когда нужно сказать Actor для рисования. Например, событие касания отправляется только на Actor, который был затронут.

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

Другим большим преимуществом Actor является то, что они могут иметь Action s. Это большая тема, но они по сути позволяют вам планировать последовательность событий для этого Actor (например, затухание в, перемещение и т.д.), Которое затем произойдет их собственный, как только вы их установили.

Таким образом, в основном Actor делает намного больше, чем Sprite, потому что это часть графической структуры.

68
21 февр. '13 в 2:06
источник

Это более или менее вопрос вкуса. Если вы хотите использовать действия и сцену, используйте актеров. Актеры нельзя рисовать напрямую, вам нужно переопределить метод рисования. Внутри рисования вы можете использовать спрайты.

0
09 дек. '12 в 11:51
источник

Посмотрите другие вопросы по меткам или Задайте вопрос