Persistência de dados

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

Persistência de dados

Mensagem por williamd1k0 em 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).

_________________
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: Persistência de dados

Mensagem por tainapsilva em 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?
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

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