Falas programadas

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

Falas programadas

Mensagem por Gabriel_Silva em Qui 13 Jun 2013, 13:46

Eu preciso fazer um sistema de falas que quando o personagem chegar em um certo ponto surge a caixa de fala na ponta de baixo da tela e  quando ela surge os objetos continuam animados mas o jogador não poderá executar ações (correr, atirar, pular) e quando apertar enter, por exemplo, a caixa fecha e começa a ação novamente. Mas eu sinceramente não sei como fazer, eu pensei em quando o jogador colidir com um objeto invisível surge a caixa mas não sei como fazer os objetos na room parar. Peço algumas dicas.

Gabriel_Silva

Número de Mensagens : 42
Data de inscrição : 15/05/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://kawek.net/gabrielarrudas

Voltar ao Topo Ir em baixo

Re: Falas programadas

Mensagem por Igor KinGamer em Qui 13 Jun 2013, 14:18

Você pode criar uma variável global, ou em algum objeto de controle, para saber se a caixa de fala está na tela (por exemplo, "travado = true" quando ela surge, "travado = false" quando ela fecha) e, portanto, saber também se as ações podem ser feitas ou não.
Uma variável global ou coisa assim porque imagino que não será só o personagem, mas também outros objetos deverão parar. Caso contrário, pode ser uma variável do personagem mesmo.

Então, antes dos códigos para cada ação ou movimento do personagem e de quaisquer outros objetos que devam parar, você testa essa variável (seguindo meu exemplo, "if (!travado) ...").
Você só tem que tomar cuidado para não deixar passar nada, isto é, fazer esse teste antes de absolutamente todas as ações que não devem acontecer enquanto a caixa está aberta.

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Falas programadas

Mensagem por Gabriel_Silva em Qui 13 Jun 2013, 14:27

Sim, não só o personagem deve parar mas todos os outros objetos.

Quanto a esse esquema, eu creio que conseguiria fazer, mas para apenas uma caixa de texto, e como eu faria pra varias caixas? (como um dialogo)

Funcionaria fazer um sprite de dialogo com todas as caixas nesse sprite e depois fazer um teste pra ver se apertou o enter e se apertou pular para o proximo index da sprite do dialogo?

Gabriel_Silva

Número de Mensagens : 42
Data de inscrição : 15/05/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://kawek.net/gabrielarrudas

Voltar ao Topo Ir em baixo

Re: Falas programadas

Mensagem por Igor KinGamer em Qui 13 Jun 2013, 14:37

Funcionaria, alterando a tal variável que eu disse só quando apertasse enter e estivesse na última caixa do diálogo (última imagem do sprite).

Porém, creio que não seja um jeito muito eficiente de fazer diálogos, pois os sprites podem acabar ocupando bastante espaço na memória... Seria mais prático desenhar o texto na hora (draw_text).

Mas eu nunca fiz caixas de diálogo, não sei qual é o melhor jeito de fazer. Se o jogo não ficar pesado demais, isto é, se não tiver muitos diálogos, acho que não há problema.

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Falas programadas

Mensagem por Gabriel_Silva em Qui 13 Jun 2013, 16:51

vou testar então

Gabriel_Silva

Número de Mensagens : 42
Data de inscrição : 15/05/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://kawek.net/gabrielarrudas

Voltar ao Topo Ir em baixo

Re: Falas programadas

Mensagem por Gabriel_Silva em Dom 16 Jun 2013, 21:44

Não consegui fazer, eu testei o key pressed no evento step, testei o evento key pressed e keyboard e ele para na primeira imagem e só. Criei uma variavel que aumentaria ao apertar enter e atribui ela no index da sprite e não funcionou também.

A sprite das falas possui 6 imagens.

Gabriel_Silva

Número de Mensagens : 42
Data de inscrição : 15/05/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://kawek.net/gabrielarrudas

Voltar ao Topo Ir em baixo

Re: Falas programadas

Mensagem por Igor KinGamer em Dom 16 Jun 2013, 21:55

Você está usando a função draw_sprite()?

Para testar se foi apertada a tecla enter, você não pode se esquecer que tem que usar keyboard_check_pressed(), e não keyboard_check(), senão, apertando e segurando, vai passar tudo de uma vez.

É pra funcionar se você usar draw_sprite() com, como você disse, uma variável para o índice, e aumentar essa variável ao apertar enter.

Código:
// Evento que ativa a caixa de fala
indice = 0;

// Step
if (keyboard_check_pressed(vk_enter))
indice += 1;
if (indice == 6 && [a caixa de fala está ativa]) // Já que a última imagem tem índice 5
{
    // Faz a caixa de fala sumir e tudo voltar ao normal
}

// Draw
draw_sprite([nome_do_sprite], indice, [posição_x], [posição_y]);

Você está fazendo algo assim? Ou a caixa de fala é um objeto à parte?

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Falas programadas

Mensagem por Conteúdo patrocinado Hoje à(s) 22:12


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