Conectar-se

Esqueci minha senha

Últimos assuntos
» colisão de queda após outra colisão dando problema
Ontem à(s) 18:08 por Lighter

» [Duvida] O que aprender
Ontem à(s) 15:32 por Markituh

» BUILD FAILED: Cannot find BUILD.xml
Ontem à(s) 14:50 por ReisBlender

» Nota de esclarecimento - GMBR voltou!
Sex 23 Jun 2017, 20:33 por Willy

» Regras do Fórum
Sex 23 Jun 2017, 19:02 por GMBR

» Retorno da GMBR!!!
Ter 24 Jan 2017, 15:43 por GMBR

» Jogo Dengue HTML
Seg 30 Nov 2015, 16:17 por guga

» Criando IA Simples para inimigos
Qua 25 Nov 2015, 19:22 por DJDAVYD

» Ordenar variavel em ordem decrescente
Sex 28 Ago 2015, 21:09 por Kodained

» Crio Trilha Sonora para Games!
Qui 27 Ago 2015, 13:50 por Isaias Malafaia

» Problema com Colisão
Qui 27 Ago 2015, 12:30 por The_Game

» Quem quer Uma Engine, e de Quê?
Qui 27 Ago 2015, 09:22 por theguitarmester

» [RESOLV]Como adicionar 2 objetos na mesma posição?
Qua 26 Ago 2015, 11:38 por Bhryenno Kelvyn Carlson

» Sistema de porta!!!
Ter 25 Ago 2015, 21:29 por theguitarmester

» Venda de objetos em Inventário - Multiplicado
Seg 24 Ago 2015, 18:33 por AG Hydra

» Atirar na direção certa
Seg 24 Ago 2015, 09:03 por theguitarmester

» Western Duels
Seg 24 Ago 2015, 07:47 por theguitarmester

» Problemas na compilação android
Dom 23 Ago 2015, 23:43 por Zero.

» Dúvida sobre strings, lendo txt
Sab 22 Ago 2015, 20:31 por Pai véi

» Como estabilizar um som
Sab 22 Ago 2015, 19:03 por Isquilo_Roedor

» Janela Modal
Sab 22 Ago 2015, 09:23 por Pai véi

» Sobre instance Creation Code
Sab 22 Ago 2015, 08:39 por Pai véi

» LudumDare #33
Sex 21 Ago 2015, 21:17 por WellingtonBecker

» Como fazer um temporizador
Sex 21 Ago 2015, 19:02 por Isquilo_Roedor

» GMS sempre salva projeto ao compilar?
Sex 21 Ago 2015, 12:32 por Pai véi

Quem está conectado
23 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 22 Visitantes

NPH

[ Ver toda a lista ]


O recorde de usuários online foi de 324 em Ter 05 Out 2010, 13:36

Tuto c/ engine de Plataforma - Abaixar, morrer com animação...

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

Tuto c/ engine de Plataforma - Abaixar, morrer com animação...

Mensagem por Mannoroth em Qua 16 Mar 2011, 21:46

Tutorial: fazendo um jogo de plataforma contendo pulo, abaixar-se, correr, pegando moedas até chegar em 100 formando uma vida, cair penhasco perdendo uma vida com animação(morrendo).
Tenha os seguintes sprites do personagem:
Spoiler:
spr_par_dir ->personagem parado virado para direita
spr_par_esq ->personagem parado virado para esquerda
spr_and_dir -> person. andando virado para direita
spr_and_esq ->person. andando virado para esquerda
spr_aba_dir --> pers. abaixado vir. p/ direita
spr_aba_esq --> pers. abaixado vir. p/ esquerda
spr_cor_dir ->pers. correndo virado p/ direita
spr_cor_esq -> pers. correndo virado p/ esquerda
spr_pul_dir -> pers. pulando vir. p/ direita
spr_pul_esq ->pers. pulando vir. p/ esquerda

tenha tbm um sprite pro chao e outro pras moedas(spr_moeda). E um spr_morto, que é do personagem ao morrer mas será colocado em outro objeto neste tuto.

Crie um objeto para ser o player, chamarei de obj_player. No create dele coloque no code:

Código:
direita=true
andando=false
abaixado=false
pe_no_chao=true
varvelocidade=0
correndo=false
velocidade=5
global.moedas=0
global.vidas=2
O nosso objeto funcionara assim, as teclas acionarão variaves(tornar true ou false), dependendo da combinação de serem verdadeiras ou falsas, o step definirá o sprite do objeto.

Agora some um evento keyboard RIGHT e coloque:
Código:
direita=true
andando=true
x+=velocidade
E num evento keyboard LEFT coloque o code:
Código:
direita=false
andando=true
x-=velocidade
crie um event 'key press UP' e bote o code:
Código:
if gravity=0 && !place_free(x,y+1) && place_free(x,y-13)
{
  vspeed=-14;pe_no_chao=false
}
Crie um event keyboard DOWN e bote:
Código:
if pe_no_chao=true abaixado=true
e num event release keyboard DOWN bote:
Código:
abaixado=false
agora vamos para o step. No step bote o code:

Código:
if pe_no_chao=true {
if correndo=false {
if andando=true {if direita=true{sprite_index=spr_and_dir} else {sprite_index=spr_and_esq}}
else
{if abaixado=false {if direita=true{sprite_index=spr_par_dir} else {sprite_index=spr_par_esq} } else  {if direita=true{sprite_index=spr_aba_dir} else {sprite_index=spr_aba_esq} }}
}
else
{if direita=true{sprite_index=spr_cor_dir} else {sprite_index=spr_cor_esq}}
}
else {if direita=true{sprite_index=spr_pul_dir} else {sprite_index=spr_pul_esq}}

Agora vamos fazer o player acelerar no 'espaço' enquanto anda, até estar correndo.
Add um evento keyboard SPACE e bote o code:
Código:
if pe_no_chao=true and andando=true varvelocidade+=2
No Step do objeto adicione mais este code:
Código:
if varvelocidade<20 velocidade=5
if varvelocidade>=20 and varvelocidade<50 velocidade=6.6
if varvelocidade>=50 velocidade=10
if varvelocidade>80 varvelocidade=80
if varvelocidade<0 varvelocidade=0
if varvelocidade>=50 correndo=true else correndo=false

No release SPACE bote esse code:
Código:
varvelocidade=0
Com isso teremos que se o personagem já estiver andando, ao segurar espaço ele vai ganhando velocidade, ate correr. Dependendo da quantidade atual de varvelocidade(q so pode aumentar se vc tiver com player no cha) a velocidade aumenta.A variavel 'velocidade' é que controla o tanto que o player anda, pois ela esta no event keyboard RIGHT e LEFT dele. Ao soltar o espaço a varvelocidade volta a ser 0.

Num evento release LEFT bote isso:
Código:
andando=false
varvelocidade=0
E num evento release RIGHT bote de novo:
Código:
andando=false
varvelocidade=0
Assim soltando LEFT e RIGHT a 'velocidade' volta ser 5 (pois é menor que 20).
Crie um objeto pra ser o chao(com o devido sprite); marque ele como 'solid' e bote depht:10. No obj_player crie um evento colisao com o objeto chao e bote:
Código:
move_contact_solid(direction,10)
vspeed = 0
pe_no_chao = true

Agora vamos botar moedas, de modo que ao colidir com uma você a pegue e se chegar a 100 moedas você ganha uma vida e o nº de moedas voltam a 0.
Crie um obj_moeda, com o spr_moeda e na colisão com obj_player bote:

Código:
with self instance_destroy()
if !global.moedas=99 global.moedas+=1 else {global.moedas=0;global.vidas+=1}

Para ver o status da quantidade de moedas e vidas durante o jogo, crie um obj_status sem sprite, e bote no evento DRAW:
Código:
draw_text(x,y+20,global.moedas)
draw_text(x,y,global.vidas)
draw_sprite(spr_par_dir,image_index,x-16,y)
draw_sprite(spr_moeda,image_index,x-16,y+20)
Para o obj_status seguir a room bote isso no step dele:
Código:
x=view_xview+40
y=view_yview+40


Para programar que o obj_player morra ao cair, voltando ao ponto inicial e perdendo uma vida, bote mais este code no step do obj_player:
Código:
if y>490 {instance_change(obj_morto,1)}
Mas crie um obj_morto, botando spr_morrendo, no event create dele bote o code:
Código:
vspeed=-20
gravity=1
alarm[0]=40
No step dele bote o code:
Código:
global.vidas-=1
if global.vidas=0 {game_restart()} else {x=280;y=280;instance_change(obj_player,1)}

o 490 aqui é o nivel que o player nao pode ultrapassar, pois se passar volta para o ponto x=96 y=280 que é o ponto inicial do obj_player no meu jogo. Esses 3 valores você pode alterar para os que quiserem. Quando o nº de vidas for menor q 0, o jogo todo reinicia nesse caso.
Por fim, vamos programar para o obj_player nao ultrapassar os limites x do cenário. Para isso, no mesmo code adicione estas linhas:
Código:
if x<10 x=10
if x>2600 x=2600
sao os limites da minha engine de exemplo, voce altera com os valores q quiser.

Links para Download da engine
http://www.4shared.com/file/4bFCQYII/EnginePlataf-correr_abaixar_mo.html

LEFT e RIGHT para mover, segure espaço enquanto anda para correr, aperte DOWN para se abaixar. Pegue 100 moedas para ganhar uma vida. Se cair vc vê animação morrendo e perde uma vida.
Se gostou do tutorial, aumente a reputação nesse post, vlw e bom uso.


Última edição por Mannoroth em Seg 02 Maio 2011, 21:29, editado 1 vez(es)
avatar
Mannoroth

Ranking : Nota D
Notas recebidas : D+D
Data de inscrição : 05/10/2010
Número de Mensagens : 836
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Tuto c/ engine de Plataforma - Abaixar, morrer com animação...

Mensagem por Convidad em Qui 17 Mar 2011, 13:41

o download ta com erro mas o tutorial ta 10

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Tuto c/ engine de Plataforma - Abaixar, morrer com animação...

Mensagem por Lauro em Qui 17 Mar 2011, 14:37

Manoroth, baixei a sua engine, muito boa^^
Acho que pra mim ela nao seria muito util, mais para os novatos, pois eu ja tenho uma ideia de GML.
Porém achei um bug na engine: ao pular,e colidir a parte de cima do player com a parte de baixo, ele gruda.
Tomei a liberdade e criei uma mask no player.
Por favor, em nome dos novatos peço que arrume a mask e refizesse o link de download.
avatar
Lauro

Ranking : Nota D
Notas recebidas : C+D
Data de inscrição : 09/11/2010
Número de Mensagens : 854
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário http://www.google.com

Voltar ao Topo Ir em baixo

Re: Tuto c/ engine de Plataforma - Abaixar, morrer com animação...

Mensagem por Mannoroth em Sex 18 Mar 2011, 20:57

Lauro, me diz especificamente o que vc mudou que eu altero e boto no post. Ae aproveito e boto um link 4shared e outro megaupload.
Ae galera, pra quem gostou eu pedi pra aumentar a reputação no post(clicando no + q fica perto do meu avatar), merece né?
E se quiserem deem sugestoes pra acrescentar mais coisas q jogos de plataformas geralmente tem.
avatar
Mannoroth

Ranking : Nota D
Notas recebidas : D+D
Data de inscrição : 05/10/2010
Número de Mensagens : 836
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Tuto c/ engine de Plataforma - Abaixar, morrer com animação...

Mensagem por sonic luan em Seg 21 Mar 2011, 07:33

gostei otimo tutorial.
avatar
sonic luan

Ranking : Nota C
Notas recebidas : C-D-A-C
Data de inscrição : 28/01/2011
Número de Mensagens : 1003
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 1

Ver perfil do usuário http://sonicmaker.forumeiros.com/memberlist

Voltar ao Topo Ir em baixo

Re: Tuto c/ engine de Plataforma - Abaixar, morrer com animação...

Mensagem por Luiz A. Oliveira em Seg 21 Mar 2011, 07:44

tutorial daora, mas podia usar o image_xscale em vez de criar tantas sprites.
avatar
Luiz A. Oliveira

Ranking : Nota C
Notas recebidas : D-B-C
Data de inscrição : 08/09/2010
Número de Mensagens : 914
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário http://luizgm.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Tuto c/ engine de Plataforma - Abaixar, morrer com animação...

Mensagem por Juliano Santos em Dom 27 Nov 2011, 14:01

Tem um bug quando o personagem colide com o bloco ele fica grudado nele.
avatar
Juliano Santos

Data de inscrição : 11/04/2011
Número de Mensagens : 140
Insígnias de JAM :

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

Ver perfil do usuário http://canaldamusica.musicblog.com.br/

Voltar ao Topo Ir em baixo

Re: Tuto c/ engine de Plataforma - Abaixar, morrer com animação...

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


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