Несколько панелей в окне игры

Я хотел бы иметь несколько «панелей» или разделов окна игры. Раздел 1 будет представлением, которое следует за игроком. Я поиграл с видами, и это, конечно, разные виды одной и той же «комнаты». Я мог бы использовать представления, а затем просто закрыть представления 2, 3 и 4 спрайтами или прямоугольниками, но, похоже, должен быть более эффективный способ сделать это.

Идеи или предложения?

Макет


person JOATMON    schedule 19.12.2012    source источник
comment
Что будут делать эти панели... Дело доходит до того, что ручное наложение графики основного вида невозможно?   -  person paul23    schedule 19.12.2012
comment
Ну, мой первоначальный план состоит в том, что панель 2 будет содержать информацию о текущей области, изображение и некоторый текст. панель 3 будет чатом, а панель 4 будет информацией о том, кто / что находится в этом районе. Предметы, монстры, картинки и текст.   -  person JOATMON    schedule 19.12.2012


Ответы (2)


Если вы используете Game Maker: Studio

вы можете использовать событие (Draw GUI), и оно будет отображаться поверх всего, но кнопки могут не с этим

Если вы не используете Game Maker: Studio

Просмотр, скорее всего, ваш лучший выбор.

person Dillyo09    schedule 12.01.2013

О, проблема, с которой мы все сталкиваемся на каком-то этапе разработки игр. Как сделать HUD?

Вот мой трюк:

  • Создайте объект, скажем, obj_HUD, единственной функцией которого является отрисовка HUD.
  • Установите глубину примерно на -100, чтобы HUD отображался поверх всего остального.
  • Разместите один экземпляр в комнате

Давайте сначала инициализируем некоторые переменные в событии create:

//CREATE EVENT
depth = -100;
width_pane2 = 150;
height_pane2 = 300;
width_pane3 = 500;
height_pane3 = 120;
width_pane4 = 120;
// Set the above values according to your needs

Теперь о этапном событии:

//STEP EVENT
x = view_xview;
y = view_yview;  //Just for simplifying the code in draw event

Вот код, который нужно добавить в событие рисования для obj_HUD:

//DRAW EVENT
draw_rectangle(x , y , x+width_pane2 , y+height_pane2 , false);
draw_rectangle(x , y+view_hview-height_pane3 , x+width_pane3 , y+view_hview , false);
draw_rectangle(x+view_wview-width_pane4 , y , x+view_wview , y+view_hview , false);

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

//DRAW EVENT (TRANSPARENT HUD)    
draw_set_alpha(0.6);
draw_set_color(c_black);
draw_rectangle(x , y , x+width_pane2 , y+height_pane2 , false);
draw_rectangle(x , y+view_hview-height_pane3 , x+width_pane3 , y+view_hview , false);
draw_rectangle(x+view_wview-width_pane4 , y , x+view_wview , y+view_hview , false);
draw_set_alpha(1);

Это должно решить проблему!

person Awol    schedule 05.12.2013