游戏制造商1.2中的字体问题

时间:2018-11-16 14:44:14

标签: fonts game-maker gml

我试图在GM中使用一种以上的字体,但是当我在draw事件中使用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 :(得分:1)

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");