Sistema de 3 estrelas - Parte: 1

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

Sistema de 3 estrelas - Parte: 1

Mensagem por vitorfernandes13 em Dom 14 Dez 2014, 21:05

Título: Sistema de 3 estrelas - Parte: 1
Versão do GM: GM:S
Requer Extensões: Não
Requer DLLs: Não
Dificuldade: Intermediário
Requerimento: Conhecimento em matrizes e vetores
Link para download da Engine: http://bit.ly/1Aa2nRr
Tags: Estrelas. Matriz. Mobile.

Funcionamento da engine:

Ao iniciar o jogo, o usuário deverá clicar no quadrado azul, a cada click o jogador ganha um ponto, ao clicar no quadrado vermelho, o jogo acaba informando a quantidade de estrelas conseguida.

https://www.dropbox.com/s/afjqua1n0sh95jk/imagem1.png?dl=0

O sistema de três estrelas é um artifício bastante utilizado em jogos mobile, onde o jogador poderá conquistar a cada fase esses itens, eles são usados como meio de estimulo ao jogador pois ele é tentado a conseguir todas as estrelas. Esse sistema foi consagrado por jogos como Angry Birds e Candy Crush Saga, podendo ser realizado de duas formas:

1. A quantidade de estrelas é proporcional à pontuação por fase (será ensinado hoje);
2. As estrelas são coletáveis;

Desenvolvi uma engine bem simples, que possui duas telas (tela inicial e uma fase). No jogo é necessário programar o click no botão, a transição de room’s, o ganho de pontos, entre outros, entretanto, iremos focar apenas na programação do nosso sistema de estrelas.

No “Create” do “obj_controle” iremos definir uma variável global usada como pontuação e uma matriz, que irá armazenar a quantidade de pontos necessária para conseguir cada estrela, observe:
Código:

//Variavel que será usada como pontuação
global.pontuacao = 0;

//Declarei uma matriz [fase, estrela]
globalvar estrela;

//Fase 1
estrela[0,0] = 1; //Para conseguir uma estrela;
estrela[0,1] = 6; //Para conseguir duas estrelas;
estrela[0,2] = 20; //Para conseguir três estrelas;

/*
Se a variação de pontos entre uma estrela e outra for uniforme, vc pode usar um for:

var i, pontos;
pontos = 10

for(i = 0; i < 3; i++) {
    estrela[0,i] = pontos;
    pontos += 10;
}
*/

Observe a representação da nossa matriz “Estrela”: finja que não coloquei "vetor" na imagem  
https://www.dropbox.com/s/jh2rt7d10eoax24/vetor.png?dl=0

Note que neste exemplo eu poderia ter declarado um vetor, entretanto, no tutorial estou usando uma matriz pois ela deverá ser usada em jogos com duas fases ou mais, onde cada linha representa uma fase, e cada coluna uma estrela.

Observação:

Note que para conseguir uma estrela o usuário deve fazer apenas um ponto (na verdade, deveria ser zero), a primeira estrela deve ser aquela que possui uma pontuação mínima para passar a fase, você nunca passou uma fase do Angry Birds com zero estrelas.

Agora, é preciso configurar o “Create” do “obj_Estrela”, ela será a tela que será mostrada para o usuário, informando a quantidade de estrelas conseguidas.
Código:

if (global.pontuacao >= estrela[0,2]) { //Se a pontuação for maior ou igual a 20
    sprite_index = spr_3estrelas;
} else if ((global.pontuacao < estrela[0,2]) && (global.pontuacao >= estrela[0,1])) { //Se a pontuação for maior ou igual a 6
    sprite_index = spr_2estrelas;
} else { //Se a pontuação for menor que 6
    sprite_index = spr_1estrela;
}

Tela mostrada ao usuário (Angry Birds):

http://pautalivrenews.com/wp-content/uploads/2011/03/IMG_0469.png

Bem, é isso, com esse tutorial você conseguiu criar um sistema simples de 3 estrelas por meio da pontuação, agora basta incrementar a engine, criando um vetor que armazena a quantidade de estrelas pegas por fase ou aumentando a quantidade de estrelas. Qualquer dúvida é só falar tongue


Última edição por vitorfernandes13 em Ter 23 Dez 2014, 17:33, editado 1 vez(es)

vitorfernandes13

Ranking : Nota C
Número de Mensagens : 284
Data de inscrição : 11/01/2014
Notas recebidas : C
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sistema de 3 estrelas - Parte: 1

Mensagem por caiquerafinha em Dom 14 Dez 2014, 21:26

Ótimo tutorial gostei muito, vai ajudar muitas pessoas parabéns!

caiquerafinha

Número de Mensagens : 39
Idade : 15
Data de inscrição : 12/04/2014
Reputação : 8
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

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