Escolhas, Condições e Variáveis

Isso é provavelmente o mais importante em uma visual novel, lembrar as escolhas que os personagens fizeram e dar-lhes "pontos de afeto", dinheiro, entre outros. Mais fácil aprender com a mão na massa, então aqui um passo-a-passo:


1)
Dê as escolhas pro personagem, usando o comando menu , como aprendemos na parte 1. Ex:
menu:

2)
Nada novo até agora, escreva a escolha que quiser, no meu exemplo: “Comprar um Iphone”.(Não esqueça dos espaços antes, e dos dois pontos “:” no final. Em seguida dê enter, vão ficar 8 espaços na próxima linha, não apague-os. Ex:
menu:
    "Comprar um Iphone":
        
3)
Agora é a parte boa, vamos definir uma variável. Calma, é moleza. Usaremos o comando de definir “$”. Ex:
menu:
    "Comprar um Iphone":
        $ presente =

Nesse exemplo, coloquei o nome da variável de “presente”, se eu quiser modifica-la depois, esse nome que vou usar.

4)
Vamos dar um valor para essa variável. Ex:
menu:
    "Comprar um Iphone":
        $ presente = "iphone"

Pronto, agora se eu escolher a opção “Comprar um Iphone”, a variável “presente” vai ser definida como “iphone”. Se quiser, pode até adicionar algumas falas que só vão aparecer se tomar essa escolha(8 espaços antes).  Ex:
menu:
    "Comprar um Iphone":
        $ presente = "iphone"
        me "Vou levar o Iphone!"

 Pô, legal, e vou fazer o que com isso? Calma amigo, você acabou de aprender uma nova habilidade! Agora pode lembrar escolhas que seu personagem realizou! Como? Vamos continuar a história:


Como podem ver, adicionei mais 2 escolhas, em seguida, vamos direto pra label casa, onde eu peço pra minha namorada abrir o presente que eu comprei.

Hora de aprender a lembrar as escolhas. Usaremos o comando “if que significa “se” seguido do nome da variável que escolheu. Ex:
label casa:
    "Você foi para casa, levando o presente para o aniversário de sua namorada. Chegando lá, entrega para ela."
    me "Abra, Kaoru!"
    if presente == "iphone":
        namo "Oh! Eu estava querendo um desses há muito tempo! Obrigada, amor!"

Agora, temos o “==” quer dizer que se a variável “presente” for igual a “iphone”, a namorada vai dizer aquela frase(nunca esqueça a quantidade de espaços antes). Outros exemplos:



Outro exemplo:


A escolha “Vamos jogar tênis!” só irá aparecer se você comprou uma raquete.


Vamos usar outro tipo agora, com números. Continuando a historinha, vocês decidem ir pro cinema!


Mesma coisa de antes, menu, escolhas, defina a variável. Porém, não coloque o número entre aspas.

Continuando:




 Complicou agora né? Que nada.

    if dinheiro >= 20:
Só vai acontecer se a variável “dinheiro” for maior ou igual à 20. Por isso o “>=”. Se substituir por “<=” só acontece se for menor ou igual à 20.

        me "Hum... eu tenho [dinheiro] reais. Aqui está."
[dinheiro] = vai informar o valor da variável, ou seja, no jogo vai aparecer assim:
Hum... eu tenho 20 reais. Aqui está. – isto é, se você escolheu pegar todo dinheiro da carteira.

        $ dinheiro -= 20
Simples, “-=” vai diminuir 20 dos 25 que estão na variável “dinheiro”. Se substituir por “+=” vai ganhar 20.


    elif dinheiro >= 10:
Só acontece se a variável “dinheiro” for maior ou igual à 10, porém, não maior que 20.


    else:
Só acontece se nenhuma das outras condições for cumprida. Ou seja, se “dinheiro” for menor que 10.

Há centenas de maneiras de usar esses comandos, só usar a imaginação.
Vou deixar aqui o código que usei nesse tutorial, para quem quiser testar.
[Código]


Qualquer dúvida, use os comentários.

21 comentários:

  1. ok, mas e se eu quiser usar "Se dinheiro for exatamente 20"? fica if dinheiro == 20? por que eu estou tentando usar e não está funcionando

    ResponderExcluir
  2. é possível fazer um jogo pra celular com esse programa?

    ResponderExcluir
  3. posso usar esse sistema de variáveis do dinheiro para afinidade ou existe um outro sistema para isso? Por exemplo: algumas respostas aumentam afinidade com determinado peronagem e o final será determinado pela quantidade de afinidade que a pessoa acumulou? e criar varias desse tipo?

    ResponderExcluir
    Respostas
    1. Pode fazer uma variavel de afinidade para cada personagem com quem MC pode se aproximar.
      $ afinidadeClaudio
      $ afinidadeRoberto
      etc

      Excluir
  4. Como faço um sistema de escolha de gênero?

    ResponderExcluir
    Respostas
    1. usando esse mesmo sistema de condições e variáveis, cria a variável gênero pro jogador escolher e sempre que escrever um diálogo, bota o nome da variável entre colchetes

      Excluir
  5. Oi, eu estava tentando personalizar meu jogo sozinho (n foi uma boa idéia). E então quando eu fui jogar, aquele fundo dos botões de escolha havia sumido, alguma idéia?

    ResponderExcluir
  6. Minha pergunta é preciso criar um menu no jogo (porque meu jogo é para Android) com itens, dinheiro e a questão da afinidade e quero que isso apareça num imagemap
    não que eu criei, ou seja, após apertar um botão a tela aparece com essa informação, alguém pode me ajudar com o código porque sou péssimo nisso?

    ResponderExcluir
    Respostas
    1. Recomendo ir na página do Facebook, pessoal lá pode ajudar, tem muitos outros tutoriais

      Excluir
  7. Oi, boa tarde
    obrigado pela ajuda com os códigos!
    Estou tentando fazer uma cena onde o jogador "descobre" uma informação, que é utilizada em um dialogo logo depois, no código ficou como
    $ skill = "informação"

    Quando o meu personagem escolhe a opção que dá a ele essa 'skill', o jogo segue normalmente sem falhas. Porém, caso meu personagem não escolha o dialogo que dá a ele essa 'skill', quando entro na nova janela do menu: o jogo crasha, o erro aparece como:

    NameError: name 'skill' is not defined

    A opção está marcada somente como uma opção comum dentro do jogo com o if skill == "informação"

    Sabe algum modo de corrigir isso?

    ResponderExcluir
    Respostas
    1. Você precisa definir a variável no começo do jogo, logo depois de label start. Caso contrário, ela não existe a não ser quando você a adquire. Então não tem como o jogo dar o IF. Assim, define ela antes. Algo tipo $ skill = "nada"

      Excluir
  8. Ei como faz pra jogador escolher seu próprio nome, tipo
    ''insira seu nome aqui''

    ResponderExcluir
    Respostas
    1. python:
      nome = renpy.input("Qual o seu nome?")
      nome = nome.strip()
      nome = nome.title()

      Excluir
    2. quatro espaços em branco antes de "nome =...", nas três linhas

      Excluir
  9. Este comentário foi removido por um administrador do blog.

    ResponderExcluir
  10. No inicio do meu jogo tem pro personagem escolher feminino e masculino.
    E no meio do jogo tem uma opção que eu quero que apareça só se o jogador escolher um dos dois. Por exemplo uma das frases tá escrito em masculino, e mesmo quando eu escolho femino a opção masculino aparece.

    ResponderExcluir
  11. esqueci de colocar as opções
    "Estou assustada demais para correr e só posso assistir.":
    if a == 1:


    "Minhas pernas não estavam respondendo aos comandos do meu cerebro,
    não consegui desviar minha visão do meteoro que se aproximava."
    "Derrepente senti um puxão no meu braço e olhei para meu pai com
    olhos enbassados pelas lagrimas."


    "Estou assustado demais para correr e só posso assistir.":
    if o == 2:S

    "Minhas pernas não estavam respondendo aos comandos do meu cerebro,
    não consegui desviar minha visão do meteoro que se aproximava."

    "Derrepente senti um puxão no meu braço e olhei para meu pai com
    olhos enbassados pelas lagrimas."

    ResponderExcluir
  12. o S foi sem querer, ele não está salvo

    ResponderExcluir