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)

Mystery_boy_maker

Número de Mensagens : 908
Idade : 23
Data de inscrição : 25/01/2010
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

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

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

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

Mystery_boy_maker

Número de Mensagens : 908
Idade : 23
Data de inscrição : 25/01/2010
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

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.

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

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

Mystery_boy_maker

Número de Mensagens : 908
Idade : 23
Data de inscrição : 25/01/2010
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

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)

simogf

Número de Mensagens : 76
Idade : 18
Data de inscrição : 30/07/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

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

Mystery_boy_maker

Número de Mensagens : 908
Idade : 23
Data de inscrição : 25/01/2010
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

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

peixoto

Ranking : Nota D
Número de Mensagens : 911
Idade : 21
Data de inscrição : 14/02/2010
Notas recebidas : D
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

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?

Nicolas

Número de Mensagens : 492
Idade : 17
Data de inscrição : 23/02/2010
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

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 ?

Mystery_boy_maker

Número de Mensagens : 908
Idade : 23
Data de inscrição : 25/01/2010
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

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

peixoto

Ranking : Nota D
Número de Mensagens : 911
Idade : 21
Data de inscrição : 14/02/2010
Notas recebidas : D
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

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

Mystery_boy_maker

Número de Mensagens : 908
Idade : 23
Data de inscrição : 25/01/2010
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

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?

F. Nizzio

Número de Mensagens : 758
Idade : 21
Data de inscrição : 19/07/2008
Reputação : -6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

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.

Mr. Kaleb

Ranking : Nota C
Número de Mensagens : 1400
Idade : 19
Data de inscrição : 07/09/2010
Notas recebidas : C
Reputação : 21
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

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?

F. Nizzio

Número de Mensagens : 758
Idade : 21
Data de inscrição : 19/07/2008
Reputação : -6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

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

Mystery_boy_maker

Número de Mensagens : 908
Idade : 23
Data de inscrição : 25/01/2010
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://recursos-mania.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Tutorial Mystery : Player fantasma atravessar paredes !

Mensagem por Conteúdo patrocinado Hoje à(s) 02:07


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