Conectar-se
Quem está conectado
30 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 30 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 14/06/2014
Número de Mensagens : 57
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

[Resolvido] Player Escalar Parede

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)
avatar
Data de inscrição : 26/03/2011
Número de Mensagens : 101
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 9

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido] Player Escalar Parede

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.
avatar
Data de inscrição : 14/06/2014
Número de Mensagens : 57
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido] Player Escalar Parede

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)
avatar
Data de inscrição : 14/06/2014
Número de Mensagens : 57
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido] Player Escalar Parede

em Seg 23 Jun 2014, 15:32
Eu tenho que mudar o step ou adicionar colisão com a parede direita ?
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 09/05/2013
Número de Mensagens : 821
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 105
Ver perfil do usuário

Re: [Resolvido] Player Escalar Parede

em Seg 23 Jun 2014, 15:46
Amigo, já experimentou trocar "x-1" por "x+1" ??
avatar
Data de inscrição : 14/06/2014
Número de Mensagens : 57
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido] Player Escalar Parede

em Qua 25 Jun 2014, 16:33
WellingtonBecker já mais ñ deu certo
avatar
Ranking : Sem avaliações
Data de inscrição : 23/05/2012
Número de Mensagens : 515
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 36

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.wibix.webs.com

Re: [Resolvido] Player Escalar Parede

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.
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 09/05/2013
Número de Mensagens : 821
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 105
Ver perfil do usuário

Re: [Resolvido] Player Escalar Parede

em Qua 25 Jun 2014, 18:27
Eu não sei como esta seu projeto, tem como mostrar o código que usou?
avatar
Data de inscrição : 14/06/2014
Número de Mensagens : 57
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido] Player Escalar Parede

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

avatar
Data de inscrição : 26/03/2011
Número de Mensagens : 101
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 9

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido] Player Escalar Parede

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.
avatar
Data de inscrição : 14/06/2014
Número de Mensagens : 57
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido] Player Escalar Parede

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
avatar
Data de inscrição : 26/03/2011
Número de Mensagens : 101
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 9

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido] Player Escalar Parede

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!
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum