Tutorial Mystery : Player fantasma atravessar paredes !

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

Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por Mystery_boy_maker em Dom 28 Nov 2010, 14:57

Tutorial Mystery

Player fantasma atravessar paredes !




Explicando melhor :


Bom nesse tutorial aproveitando o clima de terror do campeonato de games desse ano eu vou ensinar para você que é novo e se considera inexperiente em GML, como fazer
um jogo de Plataforma simples em que o personagem tem a habilidade de atravessar paredes como um fantasma ! affraid



Ao trabalho!


Salve no seu computador e importe para o Game Maker as seguintes sprites
com os seus respctivos nomes !

spr_personagem_esquerda



spr_personagem_direita



spr_chao



spr_parede





Agora vamos aos objetos


Crie um objeto para cada Sprite retirando a palavra spr e adicionando a palavra obj na frente de cada nome , você deverá ficar com algo assim :



Marque tanto o obj_chao como o obj_parede como visiveis e sólidos como na imagem



No objeto Player !!


Feito isso agora vamos no obj_player e iremos add o Evento Create , esse da imagem abaixo :



Proucure na aba " Control " por Code e arraste a Ação " Execute Code " escreveremos o seguinte código :



global.pode_atravessar = false



O que foi feito ?

Bom acabamos de criar uma variavel global ou seja que pode ser usada por mais de um objeto com o nome " pode atravessar " igual a falso ou seja desligado , será com ela que iremos permitir ou não que o player atravesse as paredes


Agora vamos adicionar o Evento " Step " esse da imagem abaixo :



Novamente usando o " Execute Code " iremos primeiramente dar movimento ao nosso
Player , então vamos fazer ele andar e pular com o código abaixo :


// Movimentação

if keyboard_check(vk_left){ hspeed = - 3 ; sprite_index = spr_personagem_esquerda} // se a tecla esquerda for apertada , o player irá para a esquerda com velocidade 3
if keyboard_check(vk_right){ hspeed = 3 ; sprite_index = spr_personagem_direita}// se a tecla direita for apertada , o player irá para a direita com velocidade 3
if keyboard_check(vk_nokey){ hspeed = 0 friction = 0.2} // Se nenhuma tecla for apertada o player ficará parado
if keyboard_check(ord("X")){ if not place_free(x,y+1){ vspeed = - 14 }} // Se a tecla "X" for apertada o palyer irá pular com velocidade certical 14


Agora adicionaremos ainda no step o código para a gravidade e outro para evitar Bugs de colisão ou seja que o player grude nas paredes.

//Gravidade e Anti Bug de Colisão

if not place_free(x+hspeed,y){ hspeed = 0 } // Evita que o player grude nas paredes
gravity_direction = 270 // direcão 270 ( padrão do GM )
gravity = 1 // gravidade = 1


Ainda no Step agora vamos configurar o funcionamento da variavel que fizemos no começo a pode atravessar iremos configurar ela para "ligar" e "desligar" quando apertarmos a tecla "Z" e também deixeremos o player transparente quando a mesma estiver ligada com o seguinte código


// Codigo para Atravessar e Ficar Transparente


if keyboard_check_pressed(ord("Z")){ if global.pode_atravessar = true { global.pode_atravessar = false // Se a tecla "Z" for apertada e a var estiver ligada então desligará
}else{ // Se não
if keyboard_check_pressed(ord("Z")){ if global.pode_atravessar = false { global.pode_atravessar = true } // Se a tecla "Z" for apertada e a var estiver desligada então ligará
}
}
}


if global.pode_atravessar = true { image_alpha = 0.2 // Se estiver ligada a opacidade sera de 0.2 ou seja o player será transparente
}else{ // Se não
if global.pode_atravessar = false { image_alpha = 1 // Se estiver desligada a opacidade será normal
}
}

Bom terminamos com o nosso Step


Agora a Colisão com o Chão


Adicione o Evento " Collision " e proucure pelo objeto : obj_chao como na imagem abaixo



Escreveremos o seguinte código usando o " Execute Code "

vspeed=0 // Quando colidir a velocidade vertical será 0
move_contact_solid(270,5) // terá contato com objeto sólido
friction = 0.2 // E terá fricção quando tocar no chão

Colisão com a Parede


Do mesmo modo que fizemos anteriormente adicionaremos colisão mas agora com a parede :



Escreva o seguinte código :

if global.pode_atravessar = false { global.pode_atravessar = true }


Para que isso ?

Bom esse código é para evitar que o player volte a ficar " Sólido " dentro da parede e fique preso dentro dela, então a var pode atravessar não ficará falsa enquanto o player estiver atravessando a parede


Com isso acabamos de configurar o objeto player



O ultimo passo !


Vamos ao código que é a alma do tutorial

Agora feche a janela do obj_palyer a abra a do obj_parede, insira o Evento Step e vá no Execute Code como na imagem abaixo :



Escreva o seguinte código !

// Torna ela atravessavel ou não dependendo na Var pode atravessar

if global.pode_atravessar = true { solid = false } // Se a var for verdadeira então a parede não será sólida
if global.pode_atravessar = false { solid = true } // Se a var for falsa então a parede será sólida !


Com isso finalizamos o Tutorial !


Qualquer dúvida comunique aqui mesmo no tópico

não esqueça de algumas coisas :

* botão "Z" ativa e desativa a var
* botão "X" pula
* Não esqueça de marcar tanto a parede quanto o chão como sólidos
* Não use as sprites sem permissão em projetos ou engines




Veja como deve ficar o resultado baixe o EXE


Click Aqui Link Direto


Última edição por Mystery_boy_maker em Dom 28 Nov 2010, 21:19, editado 4 vez(es)
avatar
Mystery_boy_maker

Data de inscrição : 25/01/2010
Número de Mensagens : 908
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://recursos-mania.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por dharrison em Dom 28 Nov 2010, 15:07

excelente tutorial, me lembrou o chapéu azul que o Mario usa no Mario 64.
ja sabia uma forma de fazer, mas a sua é mais prática *-*
Parabens Feliz
avatar
dharrison

Ranking : Nota B
Notas recebidas : A - B
Data de inscrição : 04/02/2009
Número de Mensagens : 1243
Insígnias de JAM :

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

Prêmios
   : 0
   : 1
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por Mystery_boy_maker em Dom 28 Nov 2010, 16:42

Nao entendi a parte do Mario 64 mas ...
Bom qual é a forma que você usa pra fazer gostaria de
saber só pra conhecer mesmo feliz2
avatar
Mystery_boy_maker

Data de inscrição : 25/01/2010
Número de Mensagens : 908
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://recursos-mania.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por dharrison em Dom 28 Nov 2010, 17:28

Tpw, no Mario 64 você libera aquelas caixas com ponto de exclamação, (igual no Super Mario World), e a caixa azul libera o Chapéu Azul do Mario, que dá a ele a habilidade de atravessar algumas paredes *-*

Claro, se algum dia eu for fazer isso, eu aviso.
E lhe darei os devidos créditos também.
avatar
dharrison

Ranking : Nota B
Notas recebidas : A - B
Data de inscrição : 04/02/2009
Número de Mensagens : 1243
Insígnias de JAM :

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

Prêmios
   : 0
   : 1
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por Mystery_boy_maker em Dom 28 Nov 2010, 19:50

hum agora eu entendi o que voce quis dizer antes Very Happy
Obrigado , eu aprecio muito os créditos qualquer dúvida em relação
só falar ( escrever ) hehe Obrigado por colaborar com o tópico
avatar
Mystery_boy_maker

Data de inscrição : 25/01/2010
Número de Mensagens : 908
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://recursos-mania.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por simogf em Dom 28 Nov 2010, 21:15

Está muito bem explicado parabéns pena que acho que não vou usar em muitos projectos.
Ia ver como ficava e reparei que o exe não da(da not found)
avatar
simogf

Data de inscrição : 30/07/2010
Número de Mensagens : 76
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: Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por Mystery_boy_maker em Dom 28 Nov 2010, 21:21

Hum mas mesmo assim obrigado por ler o tutorial Very Happy
Ah eu corrigi o link agora ja esta funcionando eu tinha errado um argumento e nao tava achando
avatar
Mystery_boy_maker

Data de inscrição : 25/01/2010
Número de Mensagens : 908
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://recursos-mania.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por peixoto em Dom 28 Nov 2010, 21:21

Muito intereçante o tuto, eu para fazer isso usaria um monte de substituições de player, substituição de paredes(nem sei como faria), mas gostei mesmo otimo tuto
avatar
peixoto

Ranking : Nota D
Notas recebidas : D
Data de inscrição : 14/02/2010
Número de Mensagens : 911
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: Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por Nicolas em Seg 29 Nov 2010, 08:16

Ficou bom o tutorial mas...não seria so fazer a parede nao colisivel ? e fazer o player atraves por cima dela?
avatar
Nicolas

Data de inscrição : 23/02/2010
Número de Mensagens : 492
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: Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por Mystery_boy_maker em Seg 29 Nov 2010, 21:34

@Nicolas escreveu:Ficou bom o tutorial mas...não seria so fazer a parede nao colisivel ? e fazer o player atraves por cima dela?
Se apenas fosse uma parede não colidivel o personagem nunca iria tocar nela e sim
passar direto com esse tutorial o personagem enquanto nao esta com a var desligada
a parede fica colidivel e quando a var esta ligada o player fica transparente e a parede se torna não colidivel entendeu ?
avatar
Mystery_boy_maker

Data de inscrição : 25/01/2010
Número de Mensagens : 908
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://recursos-mania.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por peixoto em Seg 29 Nov 2010, 21:57

@Mystery_boy_maker escreveu:
@Nicolas escreveu:Ficou bom o tutorial mas...não seria so fazer a parede nao colisivel ? e fazer o player atraves por cima dela?
Se apenas fosse uma parede não colidivel o personagem nunca iria tocar nela e sim
passar direto com esse tutorial o personagem enquanto nao esta com a var desligada
a parede fica colidivel e quando a var esta ligada o player fica transparente e a parede se torna não colidivel entendeu ?

eu, pra fazer o q vc ensino, eu usaria um player principal e ia duplica-lo, no player principal ia por colisao com o objeto parede e colocar pra ele para9com um evento q esqueci o nome) e no otro player eu n ias botas iso, depois botava colisao com objeto e fazia ele deletar o player e criar o otro player, assim daria algo parecido
avatar
peixoto

Ranking : Nota D
Notas recebidas : D
Data de inscrição : 14/02/2010
Número de Mensagens : 911
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: Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por Mystery_boy_maker em Qua 01 Dez 2010, 12:09

@peixoto escreveu:
@Mystery_boy_maker escreveu:
@Nicolas escreveu:Ficou bom o tutorial mas...não seria so fazer a parede nao colisivel ? e fazer o player atraves por cima dela?
Se apenas fosse uma parede não colidivel o personagem nunca iria tocar nela e sim
passar direto com esse tutorial o personagem enquanto nao esta com a var desligada
a parede fica colidivel e quando a var esta ligada o player fica transparente e a parede se torna não colidivel entendeu ?

eu, pra fazer o q vc ensino, eu usaria um player principal e ia duplica-lo, no player principal ia por colisao com o objeto parede e colocar pra ele para9com um evento q esqueci o nome) e no otro player eu n ias botas iso, depois botava colisao com objeto e fazia ele deletar o player e criar o otro player, assim daria algo parecido

Mas ao fazer isso o jogo ficaria com bug's horriveis na torca de um objeto para outro , por isso que variaveis são melhores eles funcionam como engrenagens e só dão defeito quando o erro é seu não um bug do Game Maker mesmo
avatar
Mystery_boy_maker

Data de inscrição : 25/01/2010
Número de Mensagens : 908
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://recursos-mania.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por F. Nizzio em Qua 01 Dez 2010, 12:25

Estou com uma duvida.

No evento de colisão, ele liga a variavel. Mas nesse caso o jogador vai atravessar a parede mesmo com o Z desligado, porque o evento de colisão verifica se o jogador colidiu em qualquer lugar, incluindo as bordas, e não por dentro do objeto. Como que ele detecta que o jogador não está colidindo por dentro?
avatar
F. Nizzio

Data de inscrição : 19/07/2008
Número de Mensagens : 758
Insígnias de JAM :

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

Prêmios
   :
   :
   :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por Mr. Kaleb em Qua 01 Dez 2010, 12:33

Tente apertar Z dentro do bloco.
Ele não vai ficar sólido de novo.
avatar
Mr. Kaleb

Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/09/2010
Número de Mensagens : 1400
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: Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por F. Nizzio em Qua 01 Dez 2010, 12:43

Você entendeu errado.

No evento de colisão com o bloco da parede, ele ativa a variavel. Mas se ele ativa a variavel ao tocar o bloco, pra que apertar Z?
avatar
F. Nizzio

Data de inscrição : 19/07/2008
Número de Mensagens : 758
Insígnias de JAM :

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

Prêmios
   :
   :
   :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por Mystery_boy_maker em Qui 02 Dez 2010, 16:32

@F. Nizzio escreveu:Você entendeu errado.

No evento de colisão com o bloco da parede, ele ativa a variavel. Mas se ele ativa a variavel ao tocar o bloco, pra que apertar Z?

Bom desculpa a demora em responder bom no evento da colisão com a parede
a var nao é ativa o código apenas verifica se a var estiver ativa a parede
deixar de ser sólida e se não estiver fica sólida percebeu o uso do IF
entao ao tocar na parede a var não muda eu apenas informo o que vai acontecer
quando e se a var estiver ativa
avatar
Mystery_boy_maker

Data de inscrição : 25/01/2010
Número de Mensagens : 908
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://recursos-mania.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Tutorial Mystery : Player fantasma atravessar paredes !

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