Problema com caixas de dialogo
Enviado: Qua Fev 13, 2019 10:41 pm
Sendo bem honesto eu não sei se é um bug do game maker ou eu que acabei modificando o codigo e não vi, mas resumindo,
as caixas de dialogo que fiz estão com um bug em que quando a mensagem toda é mostrada ao inves da caixa fechar a mensagem reinicia, eu realmente não sei oque houve pois esse codigo funcionava perfeitamente até hoje.
eu fiz uma variavel chamada "global.text1" que verifica se a caixa de dialogo está ativada ou não.
Nos create dos npcs tem o codigo
Esse é o codigo step do npc onde a variavel checa se a caixa esta ativada ou não, se ela não estiver o "obj_text_mago1" será criado e ele irá controlar as mensagens da caixa.
Dentro do create do "obj_text_mago1" tem os codigos:
Dentro do step tem
e por fim no evento Instance Destroy tem:
Ou seja caso a caixa esteja desligada o "obj_text_mago1" é criado ao aperta "S" e caso a caixa esteja ligada ao apertar "S" a variavem "talk" recebe um valor a mais para mudar a mensagem. Tem alguma falha no cogido ou é algum bug do Game Maker?
as caixas de dialogo que fiz estão com um bug em que quando a mensagem toda é mostrada ao inves da caixa fechar a mensagem reinicia, eu realmente não sei oque houve pois esse codigo funcionava perfeitamente até hoje.
eu fiz uma variavel chamada "global.text1" que verifica se a caixa de dialogo está ativada ou não.
Nos create dos npcs tem o codigo
Código: Selecionar todos
global.text1 = false
Código: Selecionar todos
if distance_to_object(obj_player) < 18 && distance_to_object(obj_player) > 0 {
if (keyboard_check_pressed(ord("S")) && global.text1 = false){
instance_create(x,y,obj_text_mago1)
if (sign(obj_npc1.x - obj_player.x)){
sprite_index = spr_npc2;
image_speed = 0.07;
} else if (sign(obj_npc1.x + obj_player.x)){
sprite_index = spr_npc;
image_speed = 0.07;
}
}
}
Código: Selecionar todos
global.text1 = true
text1 = string("Please iracildo fix the magic of this world.#All of us believe on you.")
text2 = string("Hamburger.")
talk = 1
out = string("")
spd = 0
Código: Selecionar todos
if talk = 1 {
out = string_copy(text1,1,spd)
spd+=2
}
if talk = 3 {
out = string_copy(text2,1,spd)
spd+=2
}
if keyboard_check_pressed(ord("S")) {
talk+=1;
spd = 0
}
if talk == 2{
instance_destroy()
}
if talk == 4{
instance_destroy()
}
Código: Selecionar todos
global.text1 = false