Agora vamos aprender algo muito interessante, e
que estou usando na minha visual novel, a Persistent Data. Como o nome já diz,
é uma informação que persiste, ou seja, mesmo dando load, fechando o jogo, não
vai poder mudar. Também serve para passar informações pra uma sequência. Ex: No
jogo 1, matei X. No 2, vão lembrar que matei X. Ou até mesmo: No jogo Y, do meu
amigo, ganhei um medalhão. No jogo X,do meu outro amigo, posso ser lembrado que
ganhei aquele medalhão. Isto é, se fizerem uma Persistent Data juntos.
É extremamente simples, é dividido em duas partes. Uma é Per-game
Persistent Data que você só vai usar no seu jogo, nada de sequências. E a outra
que pode ser compartilhada, Multi Persistent.
1) Vou usar a historinha do outro tutorial:
label start:
menu:
"Comprar um Iphone" if not persistent.a:
$ presente = "iphone"
me "Vou
levar o Iphone!"
$
persistent.a = True
Explicações:
"Comprar
um Iphone" if not persistent.a:
- Essa opção só irá aparecer se a variável “persistent.a” for
“False”. E como eu não defini ela antes, já está em False.
$
persistent.a = True
- Depois que você escolhe a primeira opção, a variável
“persistent.a” vai ser definida como “True”
Se você der Load pro começo do jogo, ou fechar e tentar de
novo, a opção “Comprar um Iphone” não irá mais aparecer. Isso é bom pra criar
um jogo mais interessante, proibindo os jogadores de mudarem suas decisões até
completarem o jogo, ou surpresas que só desbloqueiam depois de terminar.
OBS:
Toda Persistent Data precisa começar com “persistent.”
Ex: persistent.b , persistent.nhk
Outro exemplo:
python:
if persistent.plays is
None:
persistent.plays = 1
else:
persistent.plays += 1
plays
= persistent.plays
"Por exemplo, eu posso dizer que você viu essa linha [plays] vez(es).”
Quando usamos números, precisamos colocar o comando python:
if persistent.plays is None:
persistent.plays = 1
- Se a variável persistent.plays for nula, ela se tornará 1.
else:
persistent.plays += 1
- Em qualquer outro caso, se somará +1 à variável.
plays = persistent.plays
- Para não ter que ficar escrevendo “persistent.plays”,
podemos redefini-la para apenas “plays”
"Por exemplo, eu posso dizer que você viu essa linha [plays] vez(es).”
- Resultado do “plays = persistent.plays”. Irá mostrar o valor da variável.
2) Já aprendemos a
per-game Persistent, agora vamos usar a Multi Persistent.
Primeiro, criamos um objeto usando o comando init, que vai
antes de todos os códigos do jogo. Só se modifica onde estiver sublinhado, que
é o nome de onde vão ser salvas as Multi PDs. Coloque algo bem complicado, pois
se dois jogos possuírem o mesmo, vão compartilhar a Persistent Data. Ex:
init:
$ mp = MultiPersistent("teste.renpybrasil")
Em seguida, continuamos com o jogo, definimos os personagens
e imagens. E usamos o label start:
python:
if mp.plays is
None:
mp.plays = 1
else:
mp.plays += 1
mp.save()
plays = mp.plays
“De acordo com a Multi Persistent Data,
você viu essa linha [plays] vez(es).”
É o mesmo caso do exemplo anterior. Com exceção de:
mp.save()
Toda vez que modificar uma Multi, precisa usar esse comando
para salvá-la.
OBS:
Toda Multi Persistent Data precisa começar com “mp.” Ex: mp.teste
, mp.arte
Outro exemplo:
Um jogo dividido em duas partes,
aqui um código do primeiro:
init python:
mp = MultiPersistent("clannad.game")
label final:
$ mp.parte1.final = True
$ mp.save()
e "Você
terminou a parte 1, vejo você na 2!”
Agora um código do segundo:
init python:
mp =
MultiPersistent("clannad.game")
label start:
if parte1.final:
e
"Vejo que terminou a parte 1, bem-vindo de
volta!”
else:
e "Hmm,
você ainda não terminou a parte 1, porque não volta depois?"
return
Em caso de dúvidas,
use os comentários!
Vocês estão respondendo comentários?
ResponderExcluirVai ser muito útil!
ResponderExcluirUntertale feelings
ResponderExcluir