Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
[INTERMEDIÁRIO] Record e pontuação por fase...
2 participantes
Página 1 de 1
[INTERMEDIÁRIO] Record e pontuação por fase...
Estou criando um jogo, e nele estou pensando em colocar uma seleção de fases, cada fase terá 3 estrelas, e o jogador irá ganhar pontos, que serão usados na loja, e estou criando um modelo de seleção de fases, semelhante ao Angry Birds, mas, tem um problema, alguns jogadores malas, irão quer jogar a primeira fase umas 400 vezes por ser mais facil, para ganhar muitos pontos e muitas estrelas e eu não quero isso, quero que o jogador só ganhe MAIS PONTOS se ele QUEBRAR seu record, e quero que as estrelas que ele pegue sejam definitivamente destruidas. Irei mostrar um exemplo:
Como está no meu jogo:
Fulano joga fase 1: Ganha 1000 pontos e pega 2 das 3 estrelas
Fulano joga fase 1 de novo: Ganha mais 1200 pontos e pega mais 2 estrelas
Fulano é muito sacana, e joga a fase 1 de novo: Ganha mais 1000 pontos e mais 2 estrelas ¬¬...
TOTAL: 3200 pontos e 6 estrelas na fase 1 ¬¬
O que gostaria de fazer:
Fulano joga fase 1: Ganha 1000 pontos e pega 2 das 3 estrelas
Fulano joga fase 1 de novo: Ganha 800 pontos, como o seu record é 1000, sua pontuação CONTINUA com 1000, e agora só há 1 estrela na fase, ele pegou as outras
Fulano joga fase 1 de novo: Consegue 1200 pontos, e ganha mais 200 pontos na pontuação geral, pois seu antigo record era 1000...
TOTAL: 1200 pontos e 2 estrelas na fase 1
Tenho um objeto exclusivo para variaveis e lá declarei uma variavel de pontuação geral e outra de estrelas geral
Estou pensando em fazer assim, se o jogador passar de fase pela primeira vez, a sua pontuação obviamente já sera o record (exemplo: 1000 pontos), se ele passar de fase com menos pontuação (exemplo: 800 pontos) sua pontuação continua sendo a mesma do record (1000 pontos) e se ele passar a fase de novo com uma pontuação MAIOR que o seu record, ela será acrescentada a sua pontuação (exemplo: 1200 pontos, record antigo: 1000 pontos, então irei fazer novo record - record antigo (1200 - 1000) e então a pontuação dele sobe de 1000 para 1200 (1000+200))
Eu preciso criar uma variavel record para cada fase? Ou não? E há como destruir definitivamente a estrela, fazendo com que o jogador não a pegue novamente, se jogar a fase de novo?
--
Sei que isso é dificilpelo menos para mim U-U, mas, acho que é bom, tentarmos fazer coisas novas no Game Maker, pq senao eu nao estaria aprendendo nada, fazendo jogos com modelos parecido ne?
Como está no meu jogo:
Fulano joga fase 1: Ganha 1000 pontos e pega 2 das 3 estrelas
Fulano joga fase 1 de novo: Ganha mais 1200 pontos e pega mais 2 estrelas
Fulano é muito sacana, e joga a fase 1 de novo: Ganha mais 1000 pontos e mais 2 estrelas ¬¬...
TOTAL: 3200 pontos e 6 estrelas na fase 1 ¬¬
O que gostaria de fazer:
Fulano joga fase 1: Ganha 1000 pontos e pega 2 das 3 estrelas
Fulano joga fase 1 de novo: Ganha 800 pontos, como o seu record é 1000, sua pontuação CONTINUA com 1000, e agora só há 1 estrela na fase, ele pegou as outras
Fulano joga fase 1 de novo: Consegue 1200 pontos, e ganha mais 200 pontos na pontuação geral, pois seu antigo record era 1000...
TOTAL: 1200 pontos e 2 estrelas na fase 1
Tenho um objeto exclusivo para variaveis e lá declarei uma variavel de pontuação geral e outra de estrelas geral
- Código:
//Armazenamento de variaveis
//Pontos
global.pontos = 0
//Estrela
global.estrelas = 0
Estou pensando em fazer assim, se o jogador passar de fase pela primeira vez, a sua pontuação obviamente já sera o record (exemplo: 1000 pontos), se ele passar de fase com menos pontuação (exemplo: 800 pontos) sua pontuação continua sendo a mesma do record (1000 pontos) e se ele passar a fase de novo com uma pontuação MAIOR que o seu record, ela será acrescentada a sua pontuação (exemplo: 1200 pontos, record antigo: 1000 pontos, então irei fazer novo record - record antigo (1200 - 1000) e então a pontuação dele sobe de 1000 para 1200 (1000+200))
Eu preciso criar uma variavel record para cada fase? Ou não? E há como destruir definitivamente a estrela, fazendo com que o jogador não a pegue novamente, se jogar a fase de novo?
--
Sei que isso é dificil
vitorfernandes13- Games Ranking :
Notas recebidas : C
Data de inscrição : 11/01/2014
Reputação : 11
Número de Mensagens : 284
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [INTERMEDIÁRIO] Record e pontuação por fase...
Fala Vitor, blz?
@EDITADO
Vc já tentou deixar o Objeto da Estrela Persistente? Não sei exatamente se isso resolveria, porque a Room é criada novamente cada vez que o jogo acessa ela. Caso não seja isso, dá uma olhada aqui embaixo.
Vou ti passar a Ideia de como eu faria, aí vc vê se serve.
Minha é ideia é criar uma variável Global, que é um Vetor, e de acordo com os valores desse vetor vc saberá qual Estrela o Player já pegou e qual Estrela deve ser criada em cada fase. Tranquilo né?
@EDITADO
Vc já tentou deixar o Objeto da Estrela Persistente? Não sei exatamente se isso resolveria, porque a Room é criada novamente cada vez que o jogo acessa ela. Caso não seja isso, dá uma olhada aqui embaixo.
Vou ti passar a Ideia de como eu faria, aí vc vê se serve.
Minha é ideia é criar uma variável Global, que é um Vetor, e de acordo com os valores desse vetor vc saberá qual Estrela o Player já pegou e qual Estrela deve ser criada em cada fase. Tranquilo né?
- Ideia para ESTRELAS:
Primeiro, no início do jogo vc cria 2 variáveis globais e popula o vetor.
Vou supor que vc tem 10 Fases, e cada Fase vai ter apenas 3 Estrelas.- Código:
globalvar fase_atual;// serve para saber qual a fase atual
fase_atual = 0;
globalvar estrelas_fases;// vai guardar quais estrelas o Player pegou
for(i=1; i<=10; i+=1;){ // esse '10' é pq vc tem 10 fases
estrelas_fases[i, 1] = 0;
estrelas_fases[i, 2] = 0;
estrelas_fases[i, 3] = 0;
}
estrelas_fases[1][1]
estrelas_fases[1][2]
estrelas_fases[1][3]
estrelas_fases[2][1]
estrelas_fases[2][2] ... E assim vai até o estrelas_fases[10][3] .
A variável 'fase_atual' terá o número da Fase atual, quando o Player clicar pra jogar a Fase 1, vc seta o valor dela pra 1, e assim de acordo com cada Fase.
Essa parte tá pronta.
Agora, em cada Fase vc terá que por 1 Objeto que irá criar as Estrelas dinamicamente, pode ser 1 objeto diferente para cada Fase, pq as Estrelas estarão em locais diferentes, ou vc pode usar um Objeto só e verificar qual Fase está para mudar o 'x' e 'y' das Estrelas, certo?
OBS: Como cada Estrela irá saber se ela é a Estrela 1, a 2 ou a 3 da Fase?
Bom, no CREATE desse objeto que irá criar as Estrelas vc cria uma variável para por os Ids delas e cria elas na Room. É simples:- Código:
var estrelas;
//criar Estrelas
If(estrelas_fases[fase_atual, 1] = 0) {
in = instance_create(50,400, obj_estrela);
estrelas[1] = in.id; }
If(estrelas_fases[fase_atual, 2] = 0) {
in = instance_create(150,400, obj_estrela);
estrelas[2] = in.id; }
If(estrelas_fases[fase_atual, 3] = 0) {
in = instance_create(200,400, obj_estrela);
estrelas[3] = in.id; }
No obj_Estrela, no evento CREATE, vc irá criar uma variável nela pra dizer se ela é a Estrela 1, estrela 2 ou se é a 3 comparando o Id dela com os Ids do vetor 'estrelas'. Fácil.- Código:
var numero;
for(i=1; i<=3; i+=1;){
if(estrelas[i] = self.id)
self.numero = i;
}
Assim, quando o Player "pegar" essa Estrela, vc irá mudar o valor dentro do vetor 'estrelas_fases' para 1, e isso irá impedir que ela seja criada na próxima vez que entrar na Fase.
Então, no Evento que o Player pega a Estrela, pode ser um evento COLLISION do obj_estrela com o obj_Player, vc coloca assim:- Código:
estrelas_fases[fase_atual, self.numero] = 1; //'self.numero' é pra caso o Evento esteja no próprio obj_estrela
Como o Objeto que cria as Estrelas só cria se o valor for '0', as que forem pegas não serão criadas.
Última edição por Eudes - Hyo em Seg 17 Fev 2014, 22:07, editado 1 vez(es)
Eudes - Hyo- Games Ranking :
Notas recebidas : E + B+B
Data de inscrição : 02/06/2009
Reputação : 27
Número de Mensagens : 513
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [INTERMEDIÁRIO] Record e pontuação por fase...
Eu achei um pouco complicado rs... mas, eu vou reler de novo, obrigado por me ajudar, de verdade eu até estava sem animo de continuar o projeto, mas, agora, acho que ele vai valer a penaEudes - Hyo escreveu:Fala Vitor, blz?
@EDITADO
Vc já tentou deixar o Objeto da Estrela Persistente? Não sei exatamente se isso resolveria, porque a Room é criada novamente cada vez que o jogo acessa ela. Caso não seja isso, dá uma olhada aqui embaixo.
Vou ti passar a Ideia de como eu faria, aí vc vê se serve.
Minha é ideia é criar uma variável Global, que é um Vetor, e de acordo com os valores desse vetor vc saberá qual Estrela o Player já pegou e qual Estrela deve ser criada em cada fase. Tranquilo né?
- Ideia para ESTRELAS:
Primeiro, no início do jogo vc cria 2 variáveis globais e popula o vetor.
Vou supor que vc tem 10 Fases, e cada Fase vai ter apenas 3 Estrelas.Acima eu populei o Vetor 'estrelas_fases' com valores '0' para cada Estrela de cada Fase. A Estrutura dele é assim:
- Código:
globalvar fase_atual;// serve para saber qual a fase atual
fase_atual = 0;
globalvar estrelas_fases;// vai guardar quais estrelas o Player pegou
for(i=1; i<=10; i+=1){ // esse '10' é pq vc tem 10 fases
for(j=1; j<=3; i+=1){ // esse '3' é das 3 Estrelas
estrelas_fases[i][j] = 0;
}
}
estrelas_fases[1][1]
estrelas_fases[1][2]
estrelas_fases[1][3]
estrelas_fases[2][1]
estrelas_fases[2][2] ... E assim vai até o estrelas_fases[10][3] .
A variável 'fase_atual' terá o número da Fase atual, quando o Player clicar pra jogar a Fase 1, vc seta o valor dela pra 1, e assim de acordo com cada Fase.
Essa parte tá pronta.
Agora, em cada Fase vc terá que por 1 Objeto que irá criar as Estrelas dinamicamente, pode ser 1 objeto diferente para cada Fase, pq as Estrelas estarão em locais diferentes, ou vc pode usar um Objeto só e verificar qual Fase está para mudar o 'x' e 'y' das Estrelas, certo?
OBS: Como cada Estrela irá saber se ela é a Estrela 1, a 2 ou a 3 da Fase?
Bom, no CREATE desse objeto que irá criar as Estrelas vc cria uma variável para por os Ids delas e cria elas na Room. É simples:Acima, o código cria a Estrela na Posição X Y que vc colocar. Se o valor dentro do Vetor 'estrelas_fases' for '0'(zero). E nesse vetor 'estrelas' vc salva os Ids das 3 Estrelas. Agora vou mostrar onde vc vai usar isso.
- Código:
var estrelas;
//criar Estrelas
If(estrelas_fases[fase_atual][1] = 0) {
in = instance_create(50,400, obj_estrela);
estrelas[1] = in.id; }
If(estrelas_fases[fase_atual][2] = 0) {
in = instance_create(150,400, obj_estrela);
estrelas[2] = in.id; }
If(estrelas_fases[fase_atual][3] = 0) {
in = instance_create(200,400, obj_estrela);
estrelas[3] = in.id; }
No obj_Estrela, no evento CREATE, vc irá criar uma variável nela pra dizer se ela é a Estrela 1, estrela 2 ou se é a 3 comparando o Id dela com os Ids do vetor 'estrelas'. Fácil.Assim, cada uma das 3 Instâncias de Estrela terá uma variável numero com os valores 1,2 ou 3.
- Código:
var numero;
for(i=1; i<=3; i+=1){
if(estrelas[i] = self.id)
self.numero = i;
}
Assim, quando o Player "pegar" essa Estrela, vc irá mudar o valor dentro do vetor 'estrelas_fases' para 1, e isso irá impedir que ela seja criada na próxima vez que entrar na Fase.
Então, no Evento que o Player pega a Estrela, pode ser um evento COLLISION do obj_estrela com o obj_Player, vc coloca assim:Assim, Por exemplo, quando o Player pegar a Estrela nº2 da Fase 1, o GameMaker fará isso: estrelas_fases[1][2] = 1 .
- Código:
estrelas_fases[fase_atual][self.numero] = 1; //'self.numero' é pra caso o Evento esteja no próprio obj_estrela
Como o Objeto que cria as Estrelas só cria se o valor for '0', as que forem pegas não serão criadas.
vitorfernandes13- Games Ranking :
Notas recebidas : C
Data de inscrição : 11/01/2014
Reputação : 11
Número de Mensagens : 284
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [INTERMEDIÁRIO] Record e pontuação por fase...
Vc tentou marcar o Objeto Estrela como Persistent ? Talvez isso resolva.
Eudes - Hyo- Games Ranking :
Notas recebidas : E + B+B
Data de inscrição : 02/06/2009
Reputação : 27
Número de Mensagens : 513
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [INTERMEDIÁRIO] Record e pontuação por fase...
Eudes - Hyo escreveu:Vc tentou marcar o Objeto Estrela como Persistent ? Talvez isso resolva.
Vou tentar aqui :Dse der certo te envio MP. Obrigado
--
Acho que nao vai dar certo, isso funciona no GM Lite?
Eu coloco a matriz. Ex.:
- Código:
if(estrela_fase[fase][1] = 0) {
in = instance_create(50,400, obj_estrela);
estrelas[1] = in.id;
}
---
Ahhhhhh, ja sei o problema, na verdade deveria colocar:
- Código:
if(estrela_fase[fase,1] = 0) {
Espero que dê certo
vitorfernandes13- Games Ranking :
Notas recebidas : C
Data de inscrição : 11/01/2014
Reputação : 11
Número de Mensagens : 284
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [INTERMEDIÁRIO] Record e pontuação por fase...
Fala Vitor. Realmente tem esse Erro no meu código.
Essa estrutura está errada: estrela_fase[fase][1]
O certo seria: estrela_fase[fase,1]
Então, em toda parte que aparecer 'vetor[nº][nº]', vc muda pra
'vetor[nº, nº]'
Mas mesmo assim, está acontecendo algo errado no momento que o GM tenta Popular essa matriz. Tô dando uma olhada aqui pra ver o que é.
************* @EDITADO *************
Estava dando erro na hora de popula a Matriz usando 2 laços For. Então eu mudei, e o erro parou.
Essa parte do código:
Vou alterar o código lá na minha 1a resposta , blz?
Essa estrutura está errada: estrela_fase[fase][1]
O certo seria: estrela_fase[fase,1]
Então, em toda parte que aparecer 'vetor[nº][nº]', vc muda pra
'vetor[nº, nº]'
Mas mesmo assim, está acontecendo algo errado no momento que o GM tenta Popular essa matriz. Tô dando uma olhada aqui pra ver o que é.
************* @EDITADO *************
Estava dando erro na hora de popula a Matriz usando 2 laços For. Então eu mudei, e o erro parou.
Essa parte do código:
- Código:
for(i=1; i<=10; i+=1){ // esse '10' é pq vc tem 10 fases
for(j=1; j<=3; i+=1){ // esse '3' é das 3 Estrelas
estrelas_fases[i][j] = 0;
}
}
- Código:
for(i=1; i<=10; i+=1;){ // esse '10' é pq vc tem 10 fases
estrelas_fases[i, 1] = 0;
estrelas_fases[i, 2] = 0;
estrelas_fases[i, 3] = 0;
}
Vou alterar o código lá na minha 1a resposta , blz?
Eudes - Hyo- Games Ranking :
Notas recebidas : E + B+B
Data de inscrição : 02/06/2009
Reputação : 27
Número de Mensagens : 513
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» Pontuação no final da Fase
» fase bonus (como voltar pra fase principal?)
» Spriter novato/intermediario.
» Engine de Achievements [Iniciante/Intermediário]
» Pontuação do jogo
» fase bonus (como voltar pra fase principal?)
» Spriter novato/intermediario.
» Engine de Achievements [Iniciante/Intermediário]
» Pontuação do jogo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos