sexta-feira, 6 de janeiro de 2012

[SIGILOSO] Contagem de pontos!!

Pipolho: Será que não tem uma contagem de pontos decente nesse meu jogo?!
SIGI: Vindo de você... será que tem?....


Hey hey, aproveitando a madrugada em claro antes de ir na junta militar (em pleno aniversário), vamos a um rápido sigi-tuto!

Qualidade
Nome: Contagem de pontos!!
Blogueiro: SIGILOSO
Descrissao: Neste tuto vamos ver como montar uma tabela de pontos adquiridos durante as fases em seus games.
Versao: Lite e Pro
Foto(s): (o esquema é esse)


Tutorial:
Um ótimo exemplo do que vamos fazer, é essa tela aí que aparece quando você fecha um act no Sonic the Hedgehog. Nela você vê todos os pontos extras que você conseguiu ao fechar o act.


Pipolho: Tio SIIIIIIIIIIGIII, estou com sono... São 01:30, passa logo o código aí que eu quero ir pra casa... T_T
SIGI: Hoje quem manda sou eu mané, caluda.


Pra começar, vamos definir algumas variáveis globais. Supondo que os bônus adquiridos sejam zerados ao se iniciar uma fase, podemos declarar nossas variáveis em algum objeto presente nas fases, como o obj_controle, obj)view... enfim.
global.bonus_moeda=0
global.bonus_tempo=0

global.bonus_total=0
global.time_bonus=200

Ok, as primeiras variáveis representam os bônus que vamos ganhar, no caso, seriam bônus pelas moedas e pelo tempo. Depois a gente vai declarar duas variáveis muito importantes pra treta, o bonus_total, que representa todo o bõnus adquirido, e o time_bonus, ele faz a parada acontecer.


Pipolho: Wuuahhh........ Muito bonitinho, posso ir pra casa?
SIGI: Quando chegar seu aniversário você decide alguma coisa.


Agora é bem simples, sempre que o jogador ganhar algum bônus, acrescente ao código a variável correspondente ao bônus+ o valor adquirido. Trocando em míudos...
Pipolho pegou uma moeda!
global.moeda+=1
global.bonus_moeda+=100

Quanto mais tempo passar, menor será seu bônus!
Durante o código responsável pelo tempo...
global.tempo-=1
global.bonus_tempo-=100

Sacaram? Não é difícil!

Dessa forma, durante o jogo, os bônus estarão sendo manipulados e no fim da fase teremos valores prontos para uma contagem, que é o que veremos aqui.

Tendo uma fonte em mãos poderemos criar a tela onde vamos mostrar as variáveis.
No momento em que a contagem começar, use algo como isto no DRAW de algum objeto:
draw_set_font(a fonte que você vai usar)
draw_text(10,100,"Bônus de moedas")
draw_text(10,110,"Bônus de tempo")
draw_text(10,150,"Total")

draw_text(100,100,global.bonus_moedas)
draw_text(100,110,global.bonus_tempo)
draw_text(100,150,global.bonus_total)

Este é um medíucre código em que simulamos a tabelinha que aparece na tela, que nem a da screen lá encima ;D

Agora, durante a tabelinha na tela, vamos ativar isto, no STEP dese mesmo objeto:
global.timer_bonus=200
Isto é o que fará o código realmente funfar, meus garotos. Vamô ver como.

Para começar a contagem das moedas:
if global.time_bonus<200
{
if global.bonus_moedas>0
{
global.bonus_moedas-=1
global.bonus_total+=100
global.pontos // a variável que você usa pra contar os pontos
global.time_bonus+=1
}
}

Viram? É exatamente isso que acontece: o bônus das moedas vai diminuindo na tela, o jogador ganha os pontos e ele ainda vai contando o total adquirido


SIGI: Vamos, faça uma pergunta, Pipolho.
SIGI: .............................
SIGI: Espere, vou chamar o Senshi Tetsu pra fazer você pensar mais ráp...
Pipolho: TIO SIGI, POR QUE A VARIÁVEL TIME_BONUS ACRESCENTA +=1?!!!
SIGI: ... Boa pergunta, e sábia decisão!


A variável global.time_bonus acrescenta mais um durante a contagem das moedas, para as outras contagens não atropelarem essa, afinal, é uma de cada vez! A contagem de tempo, por exemplo, viria logo depois da de moedas, com um código igual, mudando apenas as variáveis e começando quando global.time_bonus for menor que 100. Então independente de quanto vá demorar a contagem das moedas, o tempo entre as moedas e o tempo vai ser igual, porque o tempo para começar a próxima não roda enquanto essa está em andamento.


SIGI: Entendeu, Pipolho?
Pipolho: ........
SIGI: SENSH...
Pipolho: NÃO, NÃO ENTENDI NADA, SOU BURRO COMO UMA PORTA!!!
SIGI: É... sabia que não entenderia...


Então neste sistema, quando a variável global.time_bonus zerar, a contagem terá acabado e o jogo poderá prosseguir ;D
Bem fácil!

É isso gente, vou agora tentar dormir e deixar Pipolho ir pra casa, preciso estar bem disposto pra ir na junta militar e depois curtir o aniverásio. 18 anos não é todo dia
Flws galera!!

Creditos: SIGILOSO

Nenhum comentário:

Postar um comentário