erro nas falas

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

erro nas falas

Mensagem por feyon2.1 em Dom 01 Set 2013, 22:30

bom eu tentei colocar um code para script para ter um maior aproveitamento, mas ele só escreve a ultima fala, EX:
no code:
1°fala: ola.
2°fala: eaw.
3°fala: tudo bom.

no jogo
1°fala: em branco.
2°fala: em branco.
3°fala: tudo bom.

é basicamente isto :-(

o codigo que usei no scr_falas
Código:
if (global.fala1>0)
{
    draw_sprite(spr_caixa_de_fala,0,view_xview,view_yview+100);
    
//se a global.fala1 estiver entre 0 e 6
if (global.fala1 > 0) and (global.fala1 < 7)
{
if global.fala1 =argument0//numero da fala
{
//nome  e face do perssonagen na caixa de texto
draw_text(view_xview+60,view_yview+110,argument1)// colocar entre "" é o nome!
draw_sprite(spr_player_perfil,0,view_xview+10,view_yview+148)

http://global.fala1 da caixa de texto
draw_text(view_xview+128,view_yview+148,argument2)//colocar entre"" é a fala!
global.falando=true
}
}
    draw_set_color(8421440);
    draw_set_font(font0);
    draw_set_halign(fa_left);
}
ai utilizei no draw do obj_balão:
Código:
scr_falas(1,"sombra","ola! posso fazer-lhe uma pergunta?")//numero da fala,nome,fala
scr_falas(2,"Sr_Bob","mas é claro, vá em frente.")//numero da fala,nome,fala
scr_falas(3,"Sombra","o que posso encontrar a leste?")//numero da fala,nome,fala
e no step do mesmo:
Código:
if global.fala1 = 6
{
instance_destroy()
}
bom eu estou aprendendo a usar argumentos, e eu sempre ouso em explicações o termo  "retorna", será isto ? eu tenho que mandar o code retornar pra fazer a leitura? se é como faço?

obrigado pela atenção Happy

feyon2.1

Número de Mensagens : 76
Data de inscrição : 14/08/2013
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: erro nas falas

Mensagem por mleoni em Seg 02 Set 2013, 00:01

Seu erro é pelo seguinte, o depth : você pode estar desenhando esse spr_caixa_de_fala "em cima" dos outros textos.Você está usando o script 3 vezes certo? Ao usar a segunda vez,você está desenhando aqueles dois sprites mais uma vez (repare no script),entao ele vai desenhar por cima da fala anterior, na terceira vez,estará desenhando por cima da fala 2,e assim por diante; Por isso a terceira fala está normal, porquê nada está desenhado sobrepondo ela.

Sobre o return,o script irá retornar o que for passado.Exemplo :
Código:

var idade,anoNascimento,anoAtual;
idade = anoAtual - anoNascimento
return (idade);
Se você chamar esse script,ele irá retornar a idade.
Espero ter ajudado xD

mleoni

Número de Mensagens : 81
Idade : 21
Data de inscrição : 06/03/2013
Reputação : 23
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: erro nas falas

Mensagem por GameMakerTutoriais em Seg 02 Set 2013, 12:55



Realmente, parece que ao usar 3x o script vai desenhando as falas por cima. Mas tem um "if global.fala1 = argument0" que dá a impressão de estar controlando isso... Então eu acho que você deve estar usando um tipo de "timer" nessa global.

Talvez o erro seja esse! Tente usar o script que eu modifiquei e veja o que acontece. Só coloquei uma mensagem a mais para o caso de a variável não bater exatamente com o valor. Daí você vai saber onde procurar pelo erro:

Código:

    if (global.fala1>0)
    {
        draw_set_color(8421440);
        draw_set_font(font0);
        draw_set_halign(fa_left);
        draw_sprite(spr_caixa_de_fala,0,view_xview,view_yview+100);
        
        if (global.fala1 < 7)
        {
            if global.fala1 =argument0//numero da fala
            {
                draw_sprite(spr_player_perfil,0,view_xview+10,view_yview+148)
                draw_text(view_xview+60,view_yview+110,argument1)// colocar entre "" é o nome!
                draw_text(view_xview+128,view_yview+148,argument2)//colocar entre"" é a fala!
                global.falando=true
            } else show_message('a fala não está definida');
        }
    }

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: erro nas falas

Mensagem por mleoni em Seg 02 Set 2013, 13:12

No começo do script tem o seguinte :
Código:

draw_sprite(spr_caixa_de_fala,0,view_xview,view_yview+100);
Então irá desenhar esse sprite 3 vezes,e o GM segue a ordem que é lhe passada para desenhar.Então, o ultimo comando de desenho sempre vai estar "por cima",conclusão : após desenhar o texto da fala 2, o script é chamado novamente, e novamente desenhará esse sprite,então desenhará por cima das outras falas,acho q a solução é tirar essa parte do código,ficando mais ou menos assim no draw do objeto :
Código:

if (global.fala1>0)
{
    draw_sprite(spr_caixa_de_fala,0,view_xview,view_yview+100);
}
scr_falas(1,"sombra","ola! posso fazer-lhe uma pergunta?")//numero da fala,nome,fala
scr_falas(2,"Sr_Bob","mas é claro, vá em frente.")//numero da fala,nome,fala
scr_falas(3,"Sombra","o que posso encontrar a leste?")//numero da fala,nome,fala

mleoni

Número de Mensagens : 81
Idade : 21
Data de inscrição : 06/03/2013
Reputação : 23
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: erro nas falas

Mensagem por feyon2.1 em Seg 02 Set 2013, 13:21

brendan640 escreveu:

Realmente, parece que ao usar 3x o script vai desenhando as falas por cima. Mas tem um "if global.fala1 = argument0" que dá a impressão de estar controlando isso... Então eu acho que você deve estar usando um tipo de "timer" nessa global.

Talvez o erro seja esse! Tente usar o script que eu modifiquei e veja o que acontece. Só coloquei uma mensagem a mais para o caso de a variável não bater exatamente com o valor. Daí você vai saber onde procurar pelo erro:

Código:

    if (global.fala1>0)
    {
        draw_set_color(8421440);
        draw_set_font(font0);
        draw_set_halign(fa_left);
        draw_sprite(spr_caixa_de_fala,0,view_xview,view_yview+100);
        
        if (global.fala1 < 7)
        {
            if global.fala1 =argument0//numero da fala
            {
                draw_sprite(spr_player_perfil,0,view_xview+10,view_yview+148)
                draw_text(view_xview+60,view_yview+110,argument1)// colocar entre "" é o nome!
                draw_text(view_xview+128,view_yview+148,argument2)//colocar entre"" é a fala!
                global.falando=true
            } else show_message('a fala não está definida');
        }
    }
não  não pegou! só ficou na cacha de mg !a fala não está definida'

mais algumas idéias?

bom sobre as mg estarem sobreposta eu concordo, mas eu coloquei como o parópio ninja brendan640 disse eu coloquei uma var global pra checar a sequencia das falas.

e quanto a pergunta do termo retorna no GML eu entendi,só que não e vejo que não é o caso do meu erro.

ajuda ai pessoal! to tentando corrigir este bug pro meu projeto seguir em frente.

edit não vi esta postagem vou ver se funciona esta logica e já volto !

feyon2.1

Número de Mensagens : 76
Data de inscrição : 14/08/2013
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: erro nas falas

Mensagem por feyon2.1 em Seg 02 Set 2013, 13:28

vlw aos dois e em especial ao Mloni que conseguiu me ajudar "merci" Very Happy.

feyon2.1

Número de Mensagens : 76
Data de inscrição : 14/08/2013
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: erro nas falas

Mensagem por Conteúdo patrocinado Hoje à(s) 17:59


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum