Выдача шрифтов в Game Maker 1.2 - PullRequest
       32

Выдача шрифтов в Game Maker 1.2

0 голосов
/ 16 ноября 2018

Я пытаюсь использовать более одного шрифта в GM, но при использовании draw_set_font в событии рисования оба моих нарисованных шрифта становятся одинаковыми, даже если я использую draw_set_font в двух разных объектах. Пожалуйста, как я могу сделать, чтобы решить это?

Вот первый объект, который называется hud:

if(global.dead == false){
    //Draw health bar
    draw_sprite(spr_hearts, global.hp, 10,10)
    //Set score
    //draw_set_color(c_white)
    //draw_set_font(fnt_main)
} else {
    draw_text((room_width/2) - 30,room_height/2-30 , "GAME")
    draw_text((room_width/2) - 25,room_height/2 , "OVER")
}

Вот второй, называемый obj_score:

draw_set_color(c_white)
draw_set_font(fnt_score)
draw_text(140,10,"SCORE : " + string(global.score))

1 Ответ

0 голосов
/ 17 ноября 2018
Функции

draw_set_font(), draw_set_colour() и т. Д. Изменяют глобальное состояние графического конвейера.Это не является независимым для каждого объекта.Итак, объект hud должен иметь вид:

if !global.dead
{
    // Draw health bar
    draw_sprite(spr_hearts, global.hp, 10, 10);
}
else
{
    draw_set_color(c_white); 
    draw_set_font(fnt_main);
    draw_set_halign(fa_center);
    draw_set_valign(fa_middle);
    draw_text(room_width div 2, room_height div 2, "GAME#OVER"); // or "GAME\nOVER" for GMS2
}

И obj_score:

draw_set_color(c_white);
draw_set_font(fnt_score);
draw_set_halign(fa_left);
draw_set_valign(fa_top);
draw_text(140, 10, "SCORE : " + string(global.score));

или, если вы хотите, чтобы это было вместе:

draw_set_color(c_white); 
draw_set_font(fnt_score);
draw_set_halign(fa_left);
draw_set_valign(fa_top);
draw_text(140, 10, "SCORE : " + string(global.score));

draw_set_font(fnt_main);
draw_set_halign(fa_center);
draw_set_valign(fa_middle);
draw_text(room_width div 2, room_height div 2, "GAME#OVER");
...