2014-12-09 2 views
0

Я новичок в Scene2d, поэтому я немного смущен. Представьте себе, что у нас есть эти два класса:Этап в экране или классе игры?

public GameScreen implements Screen { 

//override methods 
} 

public GameX extends Game { 

//override methods 
} 

оба метода имеют такие методы, как делают и размер, поэтому мой вопрос:

Какой из обоих является лучшим подходом для включения/Stage актеров и Box2D вещи?

+1

Это не имеет значения. Если у вас простая игра, вы можете просто положить все в игру. Если вы хотите разбить игру на отдельные экраны, вы можете поместить это на экран и использовать класс Game для переключения между ними. – Tenfour04

+0

@ Tenfour04 благодарит за ответ! Я просто хотел, чтобы обратная связь продолжала кодирование. – niarb

+0

Это имеет значение, так что вы четко разбираетесь в вещах. «Игра» позволяет вам подключать разные экраны. Пойдите для этого подхода. Выбранные классы экранов, например UploadScreen, GoodbyeScreen и т. Д., Могут затем инкапсулировать специфические для экрана логины. См. Game :: setScreen. Все станет ясно. Класс Stage используется для содержания ваших актеров. Вы можете определить spritebatch и viewport, используемые при настройке вашей сцены: например hudStage = new Stage (hudViewport, hudSpriteBatch); – RichieHH

ответ

0

Класс Game на самом деле является ядром игры. Его методы вызывают GameLoop или, если происходят некоторые события.
Каждая игра может иметь несколько Screen с, например, MenuScreen, PlayScreen, OptionScreen или CreditsScreen.
Так что Screen репрессий что-то вроде части игры.
Класс Game может иметь один активный Screen за один раз, и он вызывает reder() за это Screen в собственном рендере. То же самое относится к pause() и resume().
Если вы меняете активный Screen, hide() вызывается для старых Screen и show() для новых Screen.

Таким образом, ответ на ваш вопрос, что если ваш Game очень прост и не содержит различные Screen с, вы можете поместить Stage внутри Game classs и лечить Game класс как ваше одно и только Screen.
Если у вас более одного Screen, вы должны использовать интерфейс Screen и установить Stage в одном из Screen кладов.

0

Я использую оба, так как класс игры может переключаться между экранами setScreen. Обычно я сначала загружаю loadingScreen, который загружает необходимые ресурсы при загрузке. Я переключаюсь на mainMenuScreen. Но вы можете поместить некоторых участников в игровой класс и реализовать реалии экрана загрузки, это действительно не имеет значения.

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

Смежные вопросы