[Resolvido] Player Escalar Parede

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

Resolvido [Resolvido] Player Escalar Parede

Mensagem por GeraldRobotnik em Sex 20 Jun 2014, 12:33

Olá Amigos,estou precisando da ajuda de vocês para fazer um jogo no GM8 GM 8 Pro que o jogador controle o player escalando a parede usando a setinha pra cima e para desviar de um inimigo pular e escalar a outra parede, o jogo vai ter 2 Paredes como na imagem abaixo:



blz O Player vai escalar as duas paredes quando ele escalar a parede direita ou esquerda muda de sprite e quando o player pular muda de Sprite também

Obrigado!

Eu editei o Tópico para vocês entenderem melhor !


Última edição por GeraldRobotnik em Dom 07 Dez 2014, 21:21, editado 6 vez(es)

GeraldRobotnik

Número de Mensagens : 57
Idade : 19
Data de inscrição : 14/06/2014
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

Resolvido Re: [Resolvido] Player Escalar Parede

Mensagem por Camin em Sex 20 Jun 2014, 21:31

Tente assim:

No objeto Player:
No Evento Step
Código:

image_speed = 0
if ! keyboard_check(vk_up) && !keyboard_check(vk_down)
{
 image_index = 0
 sprite_index = Spr_WalkUp
}
if place_meeting(x-1,y,Obj_Parede)
{
 if keyboard_check(vk_up)
 {
  y-=4
  sprite_index = Spr_WalkUp//Sprite do player subindo!
  image_speed = 0.5
 }
 if keyboard_check(vk_down)
 {
  y+=4
  sprite_index = Spr_WalkUp//Sprite do player subindo!
  image_index -= 0.5
  if (image_index<0)
  {
   image_index = 7//Aqui o numero correspondente ao último frame(quadro do seu sprite (Spr_WalkUp)
  }
 }
}

Isso faz ele apenas subir e descer uma parede quado está encostado nela.

Camin

Número de Mensagens : 101
Idade : 23
Data de inscrição : 26/03/2011
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Player Escalar Parede

Mensagem por GeraldRobotnik em Sab 21 Jun 2014, 18:51

Valeu Camin! Agora como faço o player escalar a parede da direita também ?


Última edição por GeraldRobotnik em Ter 01 Jul 2014, 15:48, editado 2 vez(es)

GeraldRobotnik

Número de Mensagens : 57
Idade : 19
Data de inscrição : 14/06/2014
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

Resolvido Re: [Resolvido] Player Escalar Parede

Mensagem por GeraldRobotnik em Seg 23 Jun 2014, 15:32

Eu tenho que mudar o step ou adicionar colisão com a parede direita ?

GeraldRobotnik

Número de Mensagens : 57
Idade : 19
Data de inscrição : 14/06/2014
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

Resolvido Re: [Resolvido] Player Escalar Parede

Mensagem por WellingtonBecker em Seg 23 Jun 2014, 15:46

Amigo, já experimentou trocar "x-1" por "x+1" ??

WellingtonBecker

Ranking : Nota D
Número de Mensagens : 820
Idade : 35
Data de inscrição : 09/05/2013
Notas recebidas : D
Reputação : 105
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Player Escalar Parede

Mensagem por GeraldRobotnik em Qua 25 Jun 2014, 16:33

WellingtonBecker já mais ñ deu certo

GeraldRobotnik

Número de Mensagens : 57
Idade : 19
Data de inscrição : 14/06/2014
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

Resolvido Re: [Resolvido] Player Escalar Parede

Mensagem por Witen em Qua 25 Jun 2014, 18:00

WellingtonBecker escreveu:Amigo, já experimentou trocar "x-1" por "x+1" ??
GeraldRobotnik escreveu:WellingtonBecker já mais ñ deu certo
Welling se referiu a trocar o valor x-1 para x+1 de place_meeting(x-1,y,Obj_Parede), no caso ficaria place_meeting(x+1,y,Obj_Parede).
Use também image_xscale = -1 para inverter a imagem, assim não precisa criar outro sprite.

Witen

Ranking : Sem avaliações
Número de Mensagens : 515
Idade : 17
Data de inscrição : 23/05/2012
Reputação : 36
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.wibix.webs.com

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Player Escalar Parede

Mensagem por WellingtonBecker em Qua 25 Jun 2014, 18:27

Eu não sei como esta seu projeto, tem como mostrar o código que usou?

WellingtonBecker

Ranking : Nota D
Número de Mensagens : 820
Idade : 35
Data de inscrição : 09/05/2013
Notas recebidas : D
Reputação : 105
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Player Escalar Parede

Mensagem por GeraldRobotnik em Ter 01 Jul 2014, 15:52

Eu não sei se vocês entenderam então Atualizei o Tópico
WellingtonBecker estou usando o código que o Camin postou acima


GeraldRobotnik

Número de Mensagens : 57
Idade : 19
Data de inscrição : 14/06/2014
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

Resolvido Re: [Resolvido] Player Escalar Parede

Mensagem por Camin em Qui 03 Jul 2014, 00:41

É como o WellingtonBecker e o Witen falaram acima.
E como o Witen comentou, pra não prescisar criar sprites extras (virado para direita, e outros para esquerda) você pode alterar o valor da variável image_xscale ( 1 é o tamanho real da sprite no objeto, -1 é virada ao contrário, 2 é o dobro do tamanho )
então você pode substituir todo código por este:

Código:
image_speed = 0
if ! keyboard_check(vk_up) && !keyboard_check(vk_down)
{
 image_index = 0
 sprite_index = Spr_WalkUp
}

if place_meeting(x-1,y,Obj_Parede)
{
 image_xscale = +1

 if keyboard_check(vk_up)
 {
  y-=4
  sprite_index = Spr_WalkUp//Sprite do player subindo!
  image_speed = 0.5
 }
 if keyboard_check(vk_down)
 {
  y+=4
  sprite_index = Spr_WalkUp//Sprite do player subindo!
  image_index -= 0.5
  if (image_index<0)
  {
   image_index = 7//Aqui o numero correspondente ao último frame(quadro do seu sprite (Spr_WalkUp)
  }
 }
}

if place_meeting(x+1,y,Obj_Parede)
{
 image_xscale = -1

 if keyboard_check(vk_up)
 {
  y-=4
  sprite_index = Spr_WalkUp//Sprite do player subindo!
  image_speed = 0.5
 }
 if keyboard_check(vk_down)
 {
  y+=4
  sprite_index = Spr_WalkUp//Sprite do player subindo!
  image_index -= 0.5
  if (image_index<0)
  {
   image_index = 7//Aqui o numero correspondente ao último frame(quadro do seu sprite (Spr_WalkUp)
  }
 }
}
(Só foi acrescentado image_xscale e a collisão com a parede da direita)

Isso se a parede da direita for o memo objeto que a parede da esquerda.

Camin

Número de Mensagens : 101
Idade : 23
Data de inscrição : 26/03/2011
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Player Escalar Parede

Mensagem por GeraldRobotnik em Qui 03 Jul 2014, 20:07

Eu coloquei este código no Step do Player, só que ele ficou sempre com o Sprite de pulo e quando eu aperto Espaço ele vai pra direita e cai saindo da tela,então coloquei o player na parede Direita só que ele ficou parado e não escalou,eu acho que fiz algo errado

 blz  Os Objetos do Jogo são o Player e duas Paredes

GeraldRobotnik

Número de Mensagens : 57
Idade : 19
Data de inscrição : 14/06/2014
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

Resolvido Re: [Resolvido] Player Escalar Parede

Mensagem por Camin em Sex 11 Jul 2014, 23:37

Arara! anh! Testei o código e ví os erros.

Este tenque funcionar:

1º coloque o "hotspot"(cruzinha do ponto de origem) dos sprites do knuckles no meio da sprite (editando as sprite e clicando no botão center)

2º No objeto Player:

No evento Step
Código:

if (place_meeting (x -1,y,pare_DLeft) or place_meeting (x +1,y,pare_DRight))
{status = 0}else{status = 1}

if status == 0//Trepado numa parede:
{
 image_speed = 0
 gravity = 0
 
 sprite_index = spr_subindo
 if place_meeting (x-1,y,pare_DLeft) image_xscale = +1
 if place_meeting (x+1,y,pare_DRight) image_xscale = -1

 if (not keyboard_check(vk_up)and not keyboard_check(vk_down))
 {
  image_index = 0
 }
 if keyboard_check(vk_up)//Subir:
 {
  y -= 4
  image_speed = 0.5
 }
 
 if keyboard_check(vk_down)//Descer:
 {
  y += 4
  image_index -= 0.5
  if (image_index<0)image_index = 6
 }
 
 if keyboard_check_pressed(vk_space)//Pular:
 {
  sound_play (som_pulo)
  hspeed = image_xscale*10
  vspeed = -6
 }
}
if status == 1//No ar livre:
{
 sprite_index = spr_pulando
 gravity = 1
 image_speed = 1
 
 if keyboard_check(vk_left) {x-=2}
 if keyboard_check(vk_right) {x+=2}
}

No evento de colisão com a pare_DRight
Código:

move_contact_solid (direction,12)
move_outside_solid (180,12)
hspeed = 0
vspeed = 0
No evento de colisão com a pare_DLeft
Código:

move_contact_solid (direction,12)
move_outside_solid (0,12)
hspeed = 0
vspeed = 0

 coll2 Agora está certo!

Camin

Número de Mensagens : 101
Idade : 23
Data de inscrição : 26/03/2011
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Player Escalar Parede

Mensagem por Conteúdo patrocinado Hoje à(s) 22:26


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