Ren'Py Brasil
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Persistência de dados

2 participantes

Ir para baixo

Persistência de dados Empty Persistência de dados

Mensagem por williamd1k0 21.04.15 23:34

Vou fazer um breve tutorial/explicação sobre persistência de dados (guardar dados em variáveis que ficam salvas mesmo depois de fechar o programa).
A RPY permite duas formas de salvar dados persistentes nos jogos, e cada uma das duas tem suas características.

1. Objeto persistent:
-> Esse modo de persistência usa o mesmo sistema para salvar as configurações do jogo (tela, volume, velocidade do texto etc). Esses objetos são salvos exatamente nesse mesmo arquivo "persistent".

Como usar (esse método salva de forma automática):
Código:
#Salvando (exemplo: terminando uma rota)#
$ persistent.finalizouRota1 = True

É possível comparar persistent mesmo ele não sendo instanciado:
Código:
#Comparando (exemplo: um objeto para uma galeria que ainda nem foi criado/inicializado)#
if not persistent.galeriaLiberada:
     text "Você ainda não liberou esta galeria!"

-> Esse método é melhor usar para coisas mais "core" e/ou simples do seu jogo, isso porque o método seguinte é mais específico que este.


2. Método MultiPersistent:
-> O método MultiPersistent serve para casos mais especiais. Ele é independente no seu jogo, isso faz com que vários jogos possam acessá-lo, como uma série de jogos, por exemplo (como aqueles jogos da TellTale, por exemplo o The Walking Dead).

Como usar (esse método salva de forma manual):
Código:
#primeiro é preciso criar uma instância do método MultiPersistent, de preferência usando um bloco init#

init:
    $ nomeQualquer = MultiPersistent("com.grupo.serie")  #o "com.grupo.serie" é o nome que você quiser, desde que identifique claramente o seu jogo/série#

#Quando for criar um objeto dentro da persistência#
$ nomeQualquer.trueEnding = True   #<- criando#
$ nomeQualquer.save()              #<- salvando manualmente#


-> Para poder verificar os objetos use o mesmo método do "persistent" comum.

Para reutilizar um objeto criado em um outro jogo é preciso inicializá-lo também, com o mesmo nome:

Código:
init:
    $ nomeQualquer = MultiPersistent("com.grupo.serie")

-> O método MultiPersistent possui uma incompatibilidade com Android, mas como foi afirmado pelo PyTom em uma issue da versão 6.99, esse problema será arrumado (ainda não cheguei a testar, mas se alguém já o fez avise por favor).
williamd1k0
williamd1k0
Regular
Regular

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

https://github.com/williamd1k0

Ir para o topo Ir para baixo

Persistência de dados Empty Re: Persistência de dados

Mensagem por tainapsilva 08.10.16 22:50

Oi, eu nunca tive coragem de usar essa ferramenta mas estou pensando em usar, mas estou na duvida se vai servir ou como aplicar.

Seria assim: Vou fazer um jogo bem curtinho com dez perguntas para comemorar o Halloween. Cada pergunta tem três escolhas, quero dar ao jogador a chance de errar três vezes mas depois dessas três dá uma bad end. Enquanto se o jogador não errar três vezes pode continuar jogando.

Cada resposta errada dá um ponto.
Cada resposta certa dá três pontos.

Como eu consigo configurar isso?
tainapsilva
tainapsilva
Regular
Regular

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

http://visualnoveleoutrosgames.blogspot.com.br/

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos