Fazendo os menus de escolha aparecerem na hora certa

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

Fazendo os menus de escolha aparecerem na hora certa

Mensagem por Donmai em 17.10.15 19:54

Uma dúvida muito comum, quando começamos a usar o Ren'Py, é "como faço para ter a pergunta e o menu de escolha na mesma tela"? Exemplificando: você tem o seguinte código:

Código:
"A quem você decide acompanhar?"
menu:
    "Alana":
        jump compras_com_alana
    "Laura":
        jump estudar_com_laura

Ren'Py irá mostrar a sentença do narrador na caixa de diálogo, aguardar por um clique, apagar a caixa de diálogo e mostrar o menu de escolhas. Seria bom ter o diálogo e as escolhas sendo mostradas ao mesmo tempo, principalmente quando a pergunta é mais complexa. Isso é possível dessa forma:

Código:
menu:
    "A quem você decide acompanhar?"
    "Alana":
        jump compras_com_alana
    "Laura":
        jump estudar_com_laura

Agora, a caixa de diálogo não irá desaparecer quando o menu for mostrado. A maioria dos jogos feitos com Ren'Py, mesmo os mais famosos, usa esse sistema. Mas ainda há um probleminha, que as pessoas preferem ignorar: na verdade, o menu de escolhas acaba sendo mostrado antes que a gente leia a pergunta.
Hoje, me ensinaram um jeito genial de resolver isso usando o personagem-padrão 'extend'. Ren'Py vem com alguns personagens pré-programados, cada um com uma função. 'narrator' (narrador) é um deles, e eu acho que não preciso explicar a função dele. A função do personagem 'extend' é acrescentar texto à caixa de diálogo, mantendo o texto que já estava lá antes. Para que serve isso? Vou dar outro exemplo:

Código:
"Carlos, cuidadosamente, tenta desarmar a bomba."
play sound "explosao.ogg" # eu evito acentuar nomes de arquivos, por segurança
with vpunch
extend " Oh não! Voou tudo pelos ares!"

Ren'Py vai exibir a sentença do narrador, aguardar por um clique, tocar o som e mostrar a transição, e então vai acrescentar a outra sentença ao texto. Note que essa segunda sentença começa com um espaço em branco. 'extend' é, portanto, um personagem "invisível". O que ele diz nada mais é do que uma continuação da fala do personagem anterior. Você pode usá-lo para, no meio do texto, tocar um som de "tcham-tcham-tcham-tcham", mudar a expressão facial do personagem... ou explodi-lo.
"Tá, mas como é que a gente usa ele para mostrar o menu na hora certa"? Ah, isso é fácil. É só pedir para que 'extend' não diga nada. Não, não estou maluco, a coisa funciona assim:

Código:
"A quem você decide acompanhar?"
menu:
    extend ""
    "Alana":
        jump compras_com_alana
    "Laura":
        jump estudar_com_laura

O que fizemos aqui? Voltamos a colocar a pergunta fora do 'label' menu.
Dentro do label, colocamos 'extend' fazendo mímica. A função dele é forçar uma pausa, aguardando uma interação do jogador.
O que vai acontecer? A pergunta será mostrada e lida pelo jogador. Ele então, naturalmente, clicará para avançar o texto, como a gente sempre faz. Só que o texto vai permanecer na tela, e o menu será mostrado junto com ele.
Feita a escolha, o jogo continuará normalmente. Genial. Eu adoraria ter tido essa ideia, mas ela não é minha. Felizmente, philat é alguém bastante generoso, e a compartilhou com a gente.
avatar
Donmai
Iniciante
Iniciante

Mensagens : 10
Data de inscrição : 06/10/2015

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Fazendo os menus de escolha aparecerem na hora certa

Mensagem por williamd1k0 em 20.10.15 12:20

Obrigado por compartilhar!
Lembrando que isso pode ser usado também no modo NVL, apesar de ser útil somente em alguns caso, já que o modo NVL já mantém o texto e você precisa "limpar" a tela manualmente.

_________________
avatar
williamd1k0
Regular
Regular

Masculino Mensagens : 82
Data de inscrição : 19/04/2015
Localização : Paraná
Projetos : Ren'Py for Atom

Ver perfil do usuário https://github.com/williamd1k0

Voltar ao Topo Ir em baixo

Re: Fazendo os menus de escolha aparecerem na hora certa

Mensagem por tainapsilva em 20.06.16 13:30

Super interessante, mas no meu projeto atual eu vou deixar que a caixa desapareça mesmo, mas no próximo eu vou querer algo assim, que bom que ja tem um tutorial.

Obrigada pro disponibilizar isso.
avatar
tainapsilva
Regular
Regular

Feminino Mensagens : 22
Data de inscrição : 30/06/2015
Localização : Rio de janeiro
Projetos : Um Otome visual novel

Ver perfil do usuário http://visualnoveleoutrosgames.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Fazendo os menus de escolha aparecerem na hora certa

Mensagem por Conteúdo patrocinado


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