О, проблема, с которой мы все сталкиваемся на каком-то этапе разработки игр. Как сделать 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