Libgdx scene2d для 3D игры с 2D логикой?
Я начал 2D игру сверху вниз с libgdx scene2d, и мне нравится, как она реализована, ее логика и как программисты могут ее использовать (например, stage.act()
вызывает actor.act(delta)
для каждого зарегистрированного Actor
). Теперь я thoguht об использовании этой логики для 3D-игры. Я знаю, что scene2d в основном создан для пользовательского интерфейса, а не для игр вообще, особенно для 3D. но моя логика 3D игр была бы похожа на 2D сверху вниз.
Позвольте мне объяснить: вы, игрок, находитесь в лабиринте. Вы можете только сталкиваться со стенами, которые одинаковы на каждый рост. Таким образом, обнаружение столкновения будет таким же, как и в 2D сверху вниз. Также вы не можете прыгать, только идти вперед, назад... так что и движение будет таким же, как 2D сверху вниз. Только вид, поэтому рисунок, будет от первого лица, поэтому 3D. было бы плохо злоупотреблять scene2d только для логики и использовать Model
и так далее для 3D-чертежа? Я просто думал использовать scene2d, поэтому мне не нужно писать свои собственные методы "все зарегистрированные объекты действуют сейчас". Что вы об этом думаете?
1 ответ:
Вы можете использовать scene2d в этом случае, если вы хотите поймать входные события на ваших актерах, например щелчки мыши.
Это фактически одно из основных применений scene2d (и почему он используется в основном для пользовательского интерфейса). Еще одна причина-способность группировать актеров, но я думаю, что вам это не понадобится.
Если вы не хотите ловить входные события на ваших игровых объектах, то вам не следует использовать scene2d.
Имитировать то, что делает scene2d
Stage
, так же просто, как поддерживатьList<Entity>
и вызыватьentity.update(delta)
(эквивалент стадии.act ()) иentity.render(delta)
(эквивалент stage.draw ()) для каждого объекта в списке.