Obrigado por visitar a The Game Makers Brasil Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais. |
Como definir tempo de texto na tela?
- Higor Melo
- Membro
- Reações: 0
- Mensagens: 42
- Localização: SP
-
Como definir tempo de texto na tela?
if HP=0
{
draw_set_color(c_dkgray)
draw_set_alpha(0.3)
draw_rectangle(x-75,y-55,x+75,y-5,0)
draw_set_color(c_blue)
draw_rectangle(x-75,y-55,x+75,y-5,1)
draw_set_color(c_white)
draw_set_halign(fa_left)
draw_set_alpha(1)
draw_text(x-75,y-50,'CAIXA QUEBRADA..')
}
O código funciona, mas o texto some muito rápido.
- Rodrigo Santiago
- Colaborador
- Reações: 0
- Mensagens: 273
-
Re: Como definir tempo de texto na tela?
Re: Como definir tempo de texto na tela?
Se for o caso, basta checar se o HP é maior que 0 antes de reduzi-lo.
Se quiser que o texto fique na tela por X segundos e depois suma, basta criar uma variável para isso.
No Create:
Código: Selecionar todos
drawingText = false;
Código: Selecionar todos
if (HP>0)
{
HP--;
}
else if (drawingText == false)
{
drawingText = true;
alarm[0] = X * room_speed //Trocar o X pelo valor desejado em segundos;
}
Código: Selecionar todos
drawingText = false;
Código: Selecionar todos
if drawingText
{
draw_set_color(c_dkgray)
draw_set_alpha(0.3)
draw_rectangle(x-75,y-55,x+75,y-5,0)
draw_set_color(c_blue)
draw_rectangle(x-75,y-55,x+75,y-5,1)
draw_set_color(c_white)
draw_set_halign(fa_left)
draw_set_alpha(1)
draw_text(x-75,y-50,'CAIXA QUEBRADA..')
}
- Higor Melo
- Membro
- Reações: 0
- Mensagens: 42
- Localização: SP
-
Re: Como definir tempo de texto na tela?
Sim, quando o HP chega no zero, o objeto caixa "destrói". Nesse momento a mensagem é mostrada.Rodrigo Santiago escreveu:O problema não está nesse código e sim no tempo em que a condição de "HP = 0" e verdadeira. Por acaso você destrói o objeto quando o hp é zero ?
Re: Como definir tempo de texto na tela?
Procure um outro jeito de exibir a mensagem, com um objeto controle, use algo do tipo:
If objeto_caixa.hp=0 {draw_text}.
Flw!
Edit::: Para determinar um tempo para a mensagem ser executada e depois aparecer use uma variável como por exemplo show_text=true, ative e desative usando alarmes ou coisa do tipo.
- Lima Loucão
- Novato
- Reações: 0
- Mensagens: 16
Re: Como definir tempo de texto na tela?
Se não, eu sempre que preciso que um texto apareça na tela estilo hits de RPG's, eu crio um único objeto(obj_text). Neste objeto eu crio as variaveis: font, color, text, time
Onde:
Código: Selecionar todos
///CREATE
font = ""; //Fonte desejada
color = ""; //Cor desejada
text = ""; //Texto desejado
time = 0; //Tempo em segundos para sumir
alarm[0] = time*room_speed; //Dá inicio ao tempo
vspeed=-1 //Da a impressão que o texto está subindo
Código: Selecionar todos
///scr_callText(var,objeto,fonte,cor,mensagem,tempo_em_seg,posx,posy)
argument0 = instance_create(argument6,argument7,argument1);
argument0.font = argument2; //Qual é a fonte que vai usar
argument0.color = argument3; //Qual é a cor
argument0.text = argument4; //Qual é o texto
argument0.time = argument5; //Qual é o tempo
Código: Selecionar todos
if HP<=0
{
scr_callText(texto,obj_texto,fnt_mensagem,c_yellow,"CAIXA QUEBRADA",5,x-75,y-50)
instance_destroy(); //Se destrói para não criar muitos textos.
}
Pronto, isso deve funcionar para todos os objetos que você quer chamar um texto. Pode ser um hit dado:No alarm[0] coloque:E no DRAW coloque:Código: Selecionar todos
instance_destroy();
Código: Selecionar todos
draw_set_font(font) draw_set_color(color) draw_text(x,y,text)
Código: Selecionar todos
scr_callText(hitnegativo,obj_texto,fnt_hit,c_red,"-"+string(hit),2,x,y)
Código: Selecionar todos
scr_callText(msg,obj_texto,fnt_alert,c_white,"Esta porta está trancada!",1,x,y)
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes