Salvando, Carregando e Pontuações Altas
Freqüentemente, você quer criar um jogo onde ele lembra certos detalhes sobre a última vez que foi jogado.
O que você deseja salvar depende muito do jogo ou aplicativo que está criando. Se você quer salvar uma pontuação, a posição ou o progresso geral, você precisa planejar como e o que deseja salvar.
Neste tutorial, abordaremos o salvamento da pontuação dos jogadores e criaremos um sistema simples de pontuação alta ou "Melhor Pontuação Anterior".
Para este tutorial, vamos supor que você criou um jogo simples onde o jogador coleta moedas (Parte 5 de Criando um Jogo de Plataforma), e o número de moedas coletadas é exibido com um rótulo na tela.
Salvando
Quando se trata de salvar, existem duas perguntas importantes que você deve fazer a si mesmo: O que você deseja salvar e quando deve salvar? No hyperPad, o comportamento de Salvar só pode salvar um único valor por vez. Portanto, você realmente precisa pensar sobre o que está salvando.
Neste tutorial, vamos salvar a pontuação (número de moedas coletadas) que é exibida usando um rótulo na tela.
Agora que sabemos que estamos salvando a pontuação do rótulo, a próxima coisa a descobrir é quando salvar.
Existem muitas opções aqui, e elas dependem do seu estilo de jogo ou design geral. Você pode salvá-lo sempre que o jogador coletar a moeda, salvar quando o jogador perder, salvar quando o jogador vencer a fase, salvar quando o jogador pressionar um botão, ou o que mais você achar necessário para a sua situação.
Para este tutorial, vamos configurar um botão que salva a pontuação quando o jogador pressiona o botão de salvar. Essa mesma lógica de comportamento pode ser aplicada se você quiser salvar quando o jogador perder ou terminar a fase. Você só precisa acionar esses comportamentos quando ganhar ou perder.
Selecione o objeto do seu Botão de Salvar e abra os comportamentos.
Na categoria Interação do editor de comportamentos, adicione um comportamento "Parar de Tocar".
Agora, na categoria UI, adicione um comportamento "Obter Rótulo" e conecte-o ao comportamento "Parar de Tocar" da etapa anterior.
Toque no comportamento "Obter Rótulo" para visualizar as propriedades do comportamento. Nas propriedades do comportamento, toque na área que representa o objeto atual e, em seguida, selecione o rótulo na sua cena que representa sua pontuação.
Em seguida, na categoria Personalizado, adicione um comportamento "Salvar em Arquivo" e conecte-o ao "Parar de Tocar".
Selecione o comportamento "Salvar em Arquivo" que você acabou de adicionar para visualizar as propriedades do comportamento. Observe que o "Tipo de Chave" está definido como existente. As chaves existentes são coisas pré-definidas que você deseja salvar.
Primeiro, você precisa adicionar o título ou descrição de algo que deseja salvar. Isso é chamado de "Chave". Toque no botão "Selecionar ou Criar Chave" para abrir a lista de chaves.
Digite um título descritivo na parte superior e, em seguida, pressione o botão + para adicionar sua primeira chave. Como queremos salvar a pontuação, insira "Pontuação" como a chave.
Em seguida, você precisa realmente salvar a pontuação do rótulo. Para fazer isso, coloque o valor do canto do comportamento "Obter Rótulo" no campo de entrada das propriedades do "Salvar em Arquivo".
Isso é tudo! Neste ponto, seu jogo deve estar salvando sua pontuação assim que você pressionar o botão de salvar. Mas você ainda não fez nada com o valor salvo. A próxima coisa que você precisa fazer é Carregar a pontuação e realmente usá-la na sua cena.
Carregando
Com sua pontuação salva, você agora precisa carregá-la e usá-la na sua cena. Quando se trata de carregar, há uma pergunta importante que você precisa responder. Quando você quer carregar?
Assim como ao salvar, a resposta depende muito do seu projeto. Você pode carregar assim que sua cena começar, quando o jogador pressionar um botão ou sempre que algum outro evento for acionado. Depende realmente do que você está tentando alcançar.
Para este tutorial, vamos carregar assim que a cena começar e mostrar a pontuação salva anteriormente.
Para começar, adicione um rótulo em sua cena. Vamos usar este rótulo para mostrar sua pontuação salva.
Em seguida, precisamos adicionar a lógica de carregamento real. Para este tutorial, vamos adicionar a lógica ao Botão de Salvar das etapas anteriores. No entanto, dependendo do seu jogo, você pode precisar colocar sua lógica em outro lugar. Selecione o botão de salvar e abra o editor de comportamento nas propriedades do objeto.
Na categoria Personalizado, adicione o comportamento "Carregar de Arquivo" e não conecte a nada. Como não está conectado a nenhum outro comportamento, o comportamento de carga será executado assim que a cena começar (quando o botão existir na cena). Se você quiser carregar com base em um certo evento ou outro gatilho, você conectaria a outros comportamentos.
Agora selecione o comportamento "Carregar de Arquivo" para visualizar as propriedades do comportamento. Novamente, certifique-se de que "Existente" esteja selecionado como tipo de chave.
Em seguida, toque no botão "Selecionar Chave" para abrir a lista de chaves salvas. Da lista, escolha a chave "Pontuação" que você adicionou anteriormente.
Neste ponto, você tecnicamente já carregou a pontuação. Mas você ainda não está fazendo nada com isso. Vamos colocar esse valor carregado em uso.
Da categoria UI, adicione um comportamento "Definir Rótulo" e conecte-o ao comportamento de Carregar que você adicionou anteriormente.
Agora, selecione o comportamento "Definir Rótulo" para visualizar suas propriedades e lembre-se de escolher o novo rótulo que você acabou de adicionar e que representa a pontuação carregada. Depois de selecionar o rótulo correto para alterar, arraste o valor de saída do canto do comportamento "Carregar de Arquivo" para o campo de entrada do comportamento Definir Rótulo.
Isso é tudo que você precisa fazer! Seu progresso será salvo e carregado em um rótulo na próxima vez que você jogar.
Pontuação Alta
Uma coisa que você pode ter notado é que sua pontuação é salva toda vez que você pressiona o botão e substitui sua pontuação anterior. Às vezes isso é aceitável, mas geralmente você só deseja salvar quando o jogador atinge uma pontuação maior que a anterior.
Para implementar esse sistema de "Pontuação Alta", precisamos apenas modificar um pouco nossa lógica de salvamento.
Comece voltando para onde os comportamentos de salvamento estão posicionados (o botão de salvar).
Primeiro, você precisa desconectar o comportamento "Salvar em Arquivo" do seu comportamento Parar de Tocar. Toque na linha conectando os dois comportamentos para desconectá-los.
Em seguida, na categoria Lógica, adicione um comportamento SE. O comportamento SE irá verificar quando uma determinada condição for atendida antes de executar. Neste caso, queremos salvar SOMENTE SE a pontuação for maior que a pontuação anterior (carregada).
Conecte o comportamento SE ao comportamento "Parar de Tocar".
Em seguida, você precisa tocar no comportamento SE para abrir as propriedades do comportamento e configurar a condição.
Arraste o valor de saída de "Obter Rótulo" para o primeiro campo de entrada do comportamento SE.
Em seguida, arraste o valor de saída do comportamento "Carregar de Arquivo" para o segundo campo de entrada do comportamento SE.
Agora você precisa alterar a condição. Toque no botão "É Igual A" e selecione a opção Maior que ou Igual a (≥).
Finalmente, conecte seu comportamento antigo de salvar ao SE. Agora seu comportamento SE só irá executar o salvamento conectado, SE o valor do rótulo for maior (ou igual) ao valor carregado.
Isso é tudo que você precisa fazer. Agora você deve ter um sistema de salvamento e carregamento que salvará a pontuação do jogador somente se ele superar a pontuação anterior.
Outros Salvamentos
Este tutorial abordou o salvamento de uma pontuação. Mas às vezes você quer salvar outras coisas, como a posição de um jogador, ou o nível atual, etc.
Os conceitos que você aprendeu neste tutorial ainda se aplicam. Você só precisa mudar quando está salvando e o que está salvando.
Por exemplo, ao salvar a posição do jogador. A posição de um objeto é dada por 2 números: o X e o Y. Para isso, você simplesmente usaria 2 comportamentos de salvar. Um para salvar a posição X e o outro para salvar a posição Y. Então, quando se trata de carregar, você usaria 2 comportamentos de carregar. Em vez de definir um rótulo, você simplesmente moveria o objeto do jogador para as posições X e Y carregadas.
Fazendo um plano do que você está tentando salvar e quando precisa salvar, você pode criar um sistema que funcione para quase qualquer situação.

