GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Retorno da GMBR!!!
por vinians Qui 14 Mar 2024, 19:07

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


#IAJ Aula 05 - Pontuação

+2
peninha-97
All-x
6 participantes

Ir para baixo

#IAJ Aula 05 - Pontuação Empty #IAJ Aula 05 - Pontuação

Mensagem por All-x Dom 17 Jan 2010, 12:52

INTRODUÇÃO A JOGOS



Aula 05 - Pontuação



(Atualizado 08/02/2015)

Hoje vamos aprender a fazer uma pontuação para nosso jogo. Usaremos a variável global score para contar nossa pontuação.

Usaremos uma engine pronta, e estudaremos seus códigos:





#IAJ Aula 05 - Pontuação Ss_01

Execute ela, veja que os objetos de pontuação são as bolinhas amarelas (dots). Veja também que temos dois marcadores, um marca a pontuação e o outro marca o número de dots coletados.

Agora vamos ao obj_controle no evento Game Start:

[GAME MAKER 8]
Código:
//score inicial 0
score=0

//dots coletados são 0
global.dotss=0

//mostrar informação do jogo
show_info()
[GAMEMAKER: STUDIO]
Código:
//score inicial 0
score=0

//dots coletados são 0
global.dotss=0

//Não mostra highscore
global.show_hg = -1;

Aqui nós setamos a pontuação inicial em zero e o número de dots coletados que é representado pela variável global.dotss também em zero. E também mostramos a informação do jogo.

Pronto, agora já sabemos que toda vez que o jogo começar ou ser reiniciado a pontuação e o número de dots será zero.

Vamos ao objeto principal de pontuação, o obj_dot. No evento Collision com o obj_player:

Código:
//destrói o objeto
instance_destroy()

Assim o obj_dot é destruido quando o player colidir com ele. Mas a lógica é, quando pegamos um dot adiciona 1 dot e alguns pontos na pontuação, certo? Então agora vamos ao evento Destroy (Ocorre quando o objeto é destruído) do obj_dot:

Código:
//adicionando mais 15 pontos
score+=15

//adicionando mais 1 dot
global.dotss+=1
Aqui adicionamos mais 15 pontos na pontuação e mais um dot.

Bom, agora que já sabemos adicionar pontos, vamos aprender a desenhá-los na tela. Vá ao evento draw do obj_controle:

[GAME MAKER 8]
Código:
//Seta cor branca
draw_set_color(c_red)

//Transparencia
draw_set_alpha(0.7)

//Pontos
draw_text(10,10,"Pontos: "+string(score))

//Dots
draw_text(320,10,"Dots: "+string(global.dotss))

/*Legenda:

-draw_set_color(c_red): cor vermelha

-draw_set_alpha(0.7): opacidade do texto

-draw_text(10,10,"Pontos: "+string(score))

10: posição x do texto

10: posição y do texto

"Pontos: ": é uma palavra, e quando desenhamos uma palavra, frase ou texto devem vir sempre entre apóstrofos.

+: este sinal indica que adicionaremos mais um texto ao texto anterior.

string(score): este é o texto que juntamos com "pontos: ", mas como score só guarda números, convertemos ele para
texto usando string().
[GAMEMAKER: STUDIO]
Para quem tem o GM: Studio é mais complicado mostrar a tabela de highscore. Isso porque suas funções ficaram obsoletas, então eu coloquei para que quando você aperte ENTER a lista seja desenhada na tela com o script show_highscore:

Código:
//Texto
draw_set_font(font_arial)

//Scores
draw_text_color(10,10,"Pontos: "+string(score),c_white,c_white,c_white,c_white,0.7)

//Dots
draw_text_color(320,10,"Dots: "+string(global.dotss),c_white,c_white,c_white,c_white,0.7)

//Se teclar a tecla <ENTER> aparece o Highscore
if keyboard_check_pressed(vk_enter)
{
    //valor será -valor (Ou seja, se for 1 será -1 e se for -1 será 1)
    global.show_hg = -global.show_hg
}

if global.show_hg == 1
{
    show_highscore()
}

/*Legenda:

10: poisição x do texto

10: posição y do texto

"Pontos: ": é uma palavra, e quando desenhamos uma palavra, frase ou texto devem vir sempre entre apóstrofos.

+: este sinal indica que adicionaremos mais um texto ao texto anterior.

string(score): este é o texto que juntamos com "pontos: ", mas como score só guarda números, convertemos ele para
texto usando string().
Bom, no código está toda a explicação de como converter um número real em uma string.

HIGHSCORES:

Em quase todos os jogos temos o highscores (Pontuações máximas), que são as melhores pontuações feitas em um jogo. Agora vamos entender como é feito o sistema de highscores em nosso jogo.

O jogo é finalizado quando o player colidi com um inimigo ou coleta todas as dots.
Primeiro vamos ao evento Collision do player com o inimigo:

[GAME MAKER 8]
Código:
//mostra quem fez mais pontos. E se você acabou de bater o recorde pode digitar seu nome
highscore_show(score)

//resetando o jogo
game_restart()
score está entre parenteses porque queremos saber quem fez mais pontuação usando aquela variável.

[GAMEMAKER: STUDIO]
Código:
//Se você acabou de bater o recorde pode digitar seu nome
highscore_get_score()

//resetando o jogo
game_restart()
Agora vamos ao evento step do obj_controle, para analisar o sistema que identifica quando não há mais dots na fase:

[GAME MAKER 8]
Código:
//se o múmero de dosts for 0
if instance_number(obj_dot)=0
{

    //mostra uma mensagem com o texto "Parabéns. Você venceu!"
    show_message("Parabéns. Você venceu!")
    
    //adiciona mais 100 pontos
    score+=100
    
    //mostra quem fez mais ponto. E se você acabou de bater o recorde pode digitar seu nome
    highscore_show(score)
    
    //resetando o jogo
    game_restart()

}
[GAMEMAKER: STUDIO]
Código:
//se o número de dosts for 0
if instance_number(obj_dot)=0
{

    //mostra uma mensagem com o texto "Parabéns. Você venceu!"
    show_message("Parabéns. Você venceu!")
    
    //adiciona mais 100 pontos
    score+=100
    
    //Se você acabou de bater o recorde pode digitar seu nome
    highscore_get_score()
    
    //resetando o jogo
    game_restart()

}

Bom, a única novidade aqui é a função instance_number, ela guarda o número de instâncias de um mesmo objeto. Ela é como se fosse uma "variável" que conta o número de dots.

Links úteis:

[GEX - HIGHSCORE - WILLY]
https://gmbr.forumeiros.com/t24755-gex-willy-highscore-10

[SIGI - TUTO - CONTAGEM DE PONTOS - SIGILOSO]
https://gmbr.forumeiros.com/t17147-sigi-tuto-contagem-de-pontos

[RECORDES COM ARQUIVOS .INI - KAPOTY]
https://gmbr.forumeiros.com/t24637-sistema-de-recordes-com-arquivos-ini

Chegamos ao fim de mais uma aula, até a próxima!

Próxima aula: A definir



FLWS!


Última edição por Alex FC em Seg 09 Fev 2015, 19:55, editado 22 vez(es) (Motivo da edição : Atualização)
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : #IAJ Aula 05 - Pontuação Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

#IAJ Aula 05 - Pontuação Empty file not found

Mensagem por peninha-97 Sex 23 Mar 2012, 12:10

FILE NOT FOUND
Tem um link ?:?
:p
peninha-97
peninha-97

Data de inscrição : 23/03/2012
Reputação : 1
Número de Mensagens : 2
Prêmios : #IAJ Aula 05 - Pontuação Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IAJ Aula 05 - Pontuação Empty Re: #IAJ Aula 05 - Pontuação

Mensagem por alucardcsn Sex 27 Abr 2012, 02:02

Outro LInk plz ! =D
alucardcsn
alucardcsn

Data de inscrição : 22/04/2012
Reputação : 1
Número de Mensagens : 10
Prêmios : #IAJ Aula 05 - Pontuação Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IAJ Aula 05 - Pontuação Empty Re: #IAJ Aula 05 - Pontuação

Mensagem por Franck Cid Sex 12 Out 2012, 19:12

arruma o link
Franck Cid
Franck Cid

Data de inscrição : 12/10/2012
Reputação : 0
Número de Mensagens : 2
Prêmios : #IAJ Aula 05 - Pontuação Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IAJ Aula 05 - Pontuação Empty Re: #IAJ Aula 05 - Pontuação

Mensagem por Stroondero Sáb 20 Out 2012, 14:51

Affs que isso...outro link,assim não da para aprender nada nem as sprints cortadas você coloca.

Tenta fazer o upload no mediafire
Stroondero
Stroondero

Data de inscrição : 20/10/2012
Reputação : 0
Número de Mensagens : 15
Prêmios : #IAJ Aula 05 - Pontuação Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IAJ Aula 05 - Pontuação Empty Re: #IAJ Aula 05 - Pontuação

Mensagem por All-x Dom 21 Out 2012, 14:57

Aula atualizada - 21/10/12:

- Melhora na grafia e explicação;
- Atualização das engines;
- Atualização das imagens.

Ps: As próximas aulas serão atualizadas em breve.

FLWS!
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : #IAJ Aula 05 - Pontuação Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

#IAJ Aula 05 - Pontuação Empty Re: #IAJ Aula 05 - Pontuação

Mensagem por Stroondero Ter 23 Out 2012, 12:23

Muito Bom amigo agora sim Happy rs'

Agora eu adoro seus tutoriais *-*

Muito bom mesmo!kk'

Ops:fui ver como o jogo ficaria.porque deu isso...
Spoiler:

Eu sou novo nisso geek
Stroondero
Stroondero

Data de inscrição : 20/10/2012
Reputação : 0
Número de Mensagens : 15
Prêmios : #IAJ Aula 05 - Pontuação Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IAJ Aula 05 - Pontuação Empty Re: #IAJ Aula 05 - Pontuação

Mensagem por All-x Ter 23 Out 2012, 14:17

Stroondero escreveu:Muito Bom amigo agora sim Happy rs'

Agora eu adoro seus tutoriais *-*

Muito bom mesmo!kk'

Ops:fui ver como o jogo ficaria.porque deu isso...
Spoiler:

Eu sou novo nisso geek

Isso aconteceu porque você está usandoa versão LITE. A função draw_text_color é só na PRO. Substitua o código por este:
Código:
//Seta cor branca
draw_set_color(c_red)

//Transparencia
draw_set_alpha(0.7)

//Pontos
draw_text(10,10,"Pontos: "+string(score))

//Dots
draw_text(320,10,"Dots: "+string(global.dotss))

Bom você ter me lembrado isso. Vou revisar as aulas mais tardes e colocar códigos separados pra cada versão.

EDIT: A Aula agora tem os códigos tanto pra versão PRO, como pra versão LITE.

FLWS!
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : #IAJ Aula 05 - Pontuação Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

#IAJ Aula 05 - Pontuação Empty Re: #IAJ Aula 05 - Pontuação

Mensagem por Pedrin72 Qui 31 Jan 2013, 19:13

Ae "Professor" eu copie todos os seus códigos certinho agora quanto eu tento entrar no jogo aparece:
ENGINE CHEAT CODE

COMANDOS:

Seta para cima: vai para cima
Seta para direita: vai para direita
Seta para baixo: vai para baixo
Seta para esquerda: vai para esquerda
C: Abre a digitação do código
ENTER: Confirma código

Exemplos de códigos:

vidas: adiciona 10 vidas
sangue cheio: deixa o health no máximo

Créditos à Pedro Henrique pela ajuda com a execução de códigos.

"O PRÊMIO POR UMA COISA BEM FEITA É TE-LA FEITO"
ALEX FERREIRA COSTA

Pedrin72
Pedrin72

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 30/01/2013
Reputação : 6
Número de Mensagens : 128
Prêmios : #IAJ Aula 05 - Pontuação Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IAJ Aula 05 - Pontuação Empty Re: #IAJ Aula 05 - Pontuação

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos