[TUTORIAL] Salvar SCORE de um jogo e substituir caso faça mais.
+2
iConnect
MarcosSchultz
6 participantes
Página 1 de 1
[TUTORIAL] Salvar SCORE de um jogo e substituir caso faça mais.
@@ edit - tutorial atualizado
Este é um script muito simples, ele guarda o valor da variavel "distanciaAtual" e deixa amostra como record máximo... caso você supere este novo record ele salva este novo record e substitue o valor da variavel pelo novo valor... além de também mostrar os pontos atuais.
Para utilizar, basta criar um script em C# com o nome "pontos" e utilizar este código:
Para mostrar o texto, basta criar 2 "3DText" e usar nas variáveis.
Este script guarda a distância percorrida pelo jogador no eixo X
Este é um script muito simples, ele guarda o valor da variavel "distanciaAtual" e deixa amostra como record máximo... caso você supere este novo record ele salva este novo record e substitue o valor da variavel pelo novo valor... além de também mostrar os pontos atuais.
Para utilizar, basta criar um script em C# com o nome "pontos" e utilizar este código:
- Código:
using UnityEngine;
using System.Collections;
public class pontos : MonoBehaviour {
public TextMesh PontosAtuais, Maximo;
private int posicInicX, distanciaAtual, maxDistanciaPercorrida;
void Start () {
posicInicX = (int) transform.position.x;
if (PlayerPrefs.HasKey ("maxDistanciaPercorrida")) {
maxDistanciaPercorrida = PlayerPrefs.GetInt ("maxDistanciaPercorrida");
}
}
void Update () {
distanciaAtual = -posicInicX + (int) transform.position.x;
if(distanciaAtual>maxDistanciaPercorrida){
maxDistanciaPercorrida = distanciaAtual;
PlayerPrefs.SetInt("maxDistanciaPercorrida",maxDistanciaPercorrida);
}
PontosAtuais.text = distanciaAtual.ToString ();
Maximo.text = maxDistanciaPercorrida.ToString ();
}
}
Para mostrar o texto, basta criar 2 "3DText" e usar nas variáveis.
Este script guarda a distância percorrida pelo jogador no eixo X
Última edição por MarcosSchultz em Dom Jun 12, 2016 3:52 pm, editado 9 vez(es)
Re: [TUTORIAL] Salvar SCORE de um jogo e substituir caso faça mais.
Olá,
Obrigado por compartilhar connosco.
Até Mais...
Obrigado por compartilhar connosco.
Até Mais...
iConnect- Iniciante
- PONTOS : 3727
REPUTAÇÃO : 2
Respeito as regras :
Re: [TUTORIAL] Salvar SCORE de um jogo e substituir caso faça mais.
uma pergunta, mas se por um acaso eu fechar o aplicativo e abrir ele de novo, a pontuação máxima fica salva la ainda?
Édipo- MembroAvançado
- PONTOS : 4008
REPUTAÇÃO : 62
Idade : 36
Respeito as regras :
Re: [TUTORIAL] Salvar SCORE de um jogo e substituir caso faça mais.
sim, por que você está dando um PlayerPrefs no Update... permita-me desmembrar o script para você:
esta é a parte que nos interessa:
a void OnGUI é apenas para mostrar as variaveis na tela...
enfim. no Update eu estou dizendo o tempo inteiro que os meus pontos vão receber a distância que eu percorri em X, com este comando:
então a variavel pontos está sendo atualizada o tempo inteiro, até o ultimo segundo em que você manteve o jogo aberto... Logo após, nós temos este if:
nele eu pergunto se os pontos já ultrapassaram o record estabelecido, e esta checagem acontece a cada frame, ou seja, mais de 30 vezes por segundo.
caso os pontos tenham superado o record, você iguala o record aos pontos atuais com isto:
e lógo após salva a máxima distância que acabou de conseguir:
e lembrando, isto acontece o tempo inteiro, então se você superou seu próprio record, o script irá salvar o novo record o tempo inteiro...
e para completar, no start você resgata o valor salvo da ultima vez:
Então a resposta é sim... os dados são salvados o tempo inteiro no Update e se o jogo é fechado repentinamente más o record foi superado, a pontuação é guardada :D
esta é a parte que nos interessa:
- Código:
public static var pontos : float;
var MaxDistancia: float;
function Start () {
MaxDistancia =PlayerPrefs.GetFloat("MaxDistancia");
}
function Update () {
pontos = transform.position.x;
if(pontos>MaxDistancia){
MaxDistancia = pontos;
PlayerPrefs.SetFloat("MaxDistancia",MaxDistancia);
}
}
a void OnGUI é apenas para mostrar as variaveis na tela...
enfim. no Update eu estou dizendo o tempo inteiro que os meus pontos vão receber a distância que eu percorri em X, com este comando:
- Código:
pontos = transform.position.x;
então a variavel pontos está sendo atualizada o tempo inteiro, até o ultimo segundo em que você manteve o jogo aberto... Logo após, nós temos este if:
- Código:
if(pontos>MaxDistancia){
MaxDistancia = pontos;
PlayerPrefs.SetFloat("MaxDistancia",MaxDistancia);
}
nele eu pergunto se os pontos já ultrapassaram o record estabelecido, e esta checagem acontece a cada frame, ou seja, mais de 30 vezes por segundo.
caso os pontos tenham superado o record, você iguala o record aos pontos atuais com isto:
- Código:
MaxDistancia = pontos;
e lógo após salva a máxima distância que acabou de conseguir:
- Código:
PlayerPrefs.SetFloat("MaxDistancia",MaxDistancia);
e lembrando, isto acontece o tempo inteiro, então se você superou seu próprio record, o script irá salvar o novo record o tempo inteiro...
e para completar, no start você resgata o valor salvo da ultima vez:
- Código:
function Start () {
MaxDistancia =PlayerPrefs.GetFloat("MaxDistancia");
}
Então a resposta é sim... os dados são salvados o tempo inteiro no Update e se o jogo é fechado repentinamente más o record foi superado, a pontuação é guardada :D
Re: [TUTORIAL] Salvar SCORE de um jogo e substituir caso faça mais.
muito obrigado amigo, vc é o melhor
Édipo- MembroAvançado
- PONTOS : 4008
REPUTAÇÃO : 62
Idade : 36
Respeito as regras :
Re: [TUTORIAL] Salvar SCORE de um jogo e substituir caso faça mais.
CARA DESCULPE mais uma duvida, eu tentei aqui de toda forma que pensei que poderia ser mas não deu certo, como eu faria pra colocar tipo uns 10 pontos maximos, sendo que o primeiro seria o de recorde e pra baixo dele fosse os records anteriores (recordes anteriores de pontos mais baixo)e assim que tipo eu fizer um recorde maior do que o recorde atual, ele ir pra primeiro lugar e o recorde anteior for para o segundo lugar e assim por diante.
Édipo- MembroAvançado
- PONTOS : 4008
REPUTAÇÃO : 62
Idade : 36
Respeito as regras :
Re: [TUTORIAL] Salvar SCORE de um jogo e substituir caso faça mais.
Básicamente você terá que fazer um sistema talvez um pouco complexo, envolvendo Array ou list
já lidou com arrays? conforme eu mostro neste vídeo?
já lidou com arrays? conforme eu mostro neste vídeo?
Re: [TUTORIAL] Salvar SCORE de um jogo e substituir caso faça mais.
cara, eu só tenho a agradecer toda a ajuda que vc me deu, até hj, meu jogo esta (quase) pronto
faltando somente alguns detalhes, mas a parte mais difícil ja passou, muito obrigado, muito obrigado messsmo, sem seu forum e sua ajuda nada
tinha dado certo, e se tivesse, tinha demoraaaaaaaado hehehehe
vc é fera, assim que eu lançar o joguinho, eu vou cobrar um valor simbólico, e se vc quiser me mande o numero de sua conta
que prometo depositar 5% de todo o valor que eu arrecadar com ele ^^
faltando somente alguns detalhes, mas a parte mais difícil ja passou, muito obrigado, muito obrigado messsmo, sem seu forum e sua ajuda nada
tinha dado certo, e se tivesse, tinha demoraaaaaaaado hehehehe
vc é fera, assim que eu lançar o joguinho, eu vou cobrar um valor simbólico, e se vc quiser me mande o numero de sua conta
que prometo depositar 5% de todo o valor que eu arrecadar com ele ^^
Édipo- MembroAvançado
- PONTOS : 4008
REPUTAÇÃO : 62
Idade : 36
Respeito as regras :
Re: [TUTORIAL] Salvar SCORE de um jogo e substituir caso faça mais.
Como faz pra apagar o valor? Fui exportar o jogo pra windows porém o valor que eu fiz na unity ficou salvo. hahahah
VSouza- Membro
- PONTOS : 3174
REPUTAÇÃO : 5
Respeito as regras :
Re: [TUTORIAL] Salvar SCORE de um jogo e substituir caso faça mais.
PlayerPrefs.DeleteAll();
PlayerPrefs.DeleteKey("Nome Da Chave");
ou use o CCleaner
PlayerPrefs.DeleteKey("Nome Da Chave");
ou use o CCleaner
Weslley- Moderador
- PONTOS : 5728
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [TUTORIAL] Salvar SCORE de um jogo e substituir caso faça mais.
Tentei dar uma incrementada no código pra salvar o valor do record tbm salvar o valor do ultimo score salvo. porém não deu certo, quero salvar para apresentar na tela de gameover.
Segue código.
Segue código.
- Código:
using UnityEngine;
using System.Collections;
public class pontos : MonoBehaviour {
public int score;
public TextMesh tes;
public int best;
public int melhor;
public int atual;
public TextMesh bests;
public TextMesh atua;
// Use this for initialization
void Start () {
//PlayerPrefs.DeleteAll ();
melhor = PlayerPrefs.GetInt ("melhor");
atual = PlayerPrefs.GetInt ("atual");
}
// Update is called once per frame
void Update () {
bests.text = melhor.ToString();
atua.text = atual.ToString();
tes.text = score.ToString ();
best = score;
atual = score;
PlayerPrefs.SetInt ("atual", atual);
if (best>melhor){
melhor = best;
PlayerPrefs.SetInt ("melhor", melhor);
}
}
public void addpoints(int points) {
score += points;
}
}
VSouza- Membro
- PONTOS : 3174
REPUTAÇÃO : 5
Respeito as regras :
Re: [TUTORIAL] Salvar SCORE de um jogo e substituir caso faça mais.
Atualizei o script para esta nova versão:
Mas para fazer isto que você quer, você vai precisa de um objeto que transite entre cenas, para guardar o record anterior...
- Código:
using UnityEngine;
using System.Collections;
public class pontos : MonoBehaviour {
public TextMesh PontosAtuais, Maximo;
private int posicInicX, distanciaAtual, maxDistanciaPercorrida;
void Start () {
posicInicX = (int) transform.position.x;
if (PlayerPrefs.HasKey ("maxDistanciaPercorrida")) {
maxDistanciaPercorrida = PlayerPrefs.GetInt ("maxDistanciaPercorrida");
}
}
void Update () {
distanciaAtual = -posicInicX + (int) transform.position.x;
if(distanciaAtual>maxDistanciaPercorrida){
maxDistanciaPercorrida = distanciaAtual;
PlayerPrefs.SetInt("maxDistanciaPercorrida",maxDistanciaPercorrida);
}
PontosAtuais.text = distanciaAtual.ToString ();
Maximo.text = maxDistanciaPercorrida.ToString ();
}
}
Mas para fazer isto que você quer, você vai precisa de um objeto que transite entre cenas, para guardar o record anterior...
Re: [TUTORIAL] Salvar SCORE de um jogo e substituir caso faça mais.
como faria para o score almentar quando matar um inimigo?
Re: [TUTORIAL] Salvar SCORE de um jogo e substituir caso faça mais.
bruxamissi escreveu:como faria para o score almentar quando matar um inimigo?
Crie um tópico específico para a sua dúvida, postando o que já fez.
Re: [TUTORIAL] Salvar SCORE de um jogo e substituir caso faça mais.
https://www.schultzgames.com/t4474-score-ao-matar-inimigo#31089MarcosSchultz escreveu:bruxamissi escreveu:como faria para o score almentar quando matar um inimigo?
Crie um tópico específico para a sua dúvida, postando o que já fez.
Tópicos semelhantes
» [TUTORIAL] Salvar SCORE e substituir caso faça mais pontos.
» [TUTORIAL] Tocar mais de um áudio no mesmo objeto ( 2 ou mais AudioSource)
» [TUTORIAL] SALVAR JOGO AUTOMATICAMENTE
» [TUTORIAL] Método simples de salvar progresso do jogo em um arquivo separado!
» [TUTORIAL] Screenshoot do jogo no editor (em resoluções mais altas)
» [TUTORIAL] Tocar mais de um áudio no mesmo objeto ( 2 ou mais AudioSource)
» [TUTORIAL] SALVAR JOGO AUTOMATICAMENTE
» [TUTORIAL] Método simples de salvar progresso do jogo em um arquivo separado!
» [TUTORIAL] Screenshoot do jogo no editor (em resoluções mais altas)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos