Tenho um problema no meu jogo estilo mario

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

Tenho um problema no meu jogo estilo mario

Mensagem por katisuke em Ter 10 Mar 2015, 15:13

Quando eu pulo em cima do monstro ele morre e o meu personagem não perde life(isso está certo), mas o erro é agora, quando eu toco na frente dele, ele também morre, e eu perco life.

Eu queria que ao tocar na frente ou atraz do monstro, o meu personagem perdesse life e ficasse imune por um tempinho, e o monstro continuasse vivo. A quantidade de life que eu perco é 1.

Se for ajudar, aqui está minha engine com o monstro:

NO CREATE:

Código:
image_speed=0.20

hsp=0;
vsp=0;
grav=0.5;
saltar=false;
global.matar=false;
global.moeda=false;


NO STEP:

Código:
vsp += grav;
y += vsp;
x += hsp;

direita = keyboard_check(ord("D"));
esquerda = keyboard_check(ord("A"));
cima = keyboard_check(ord("W"));

if (direita=true) {
     hsp=4;
     image_xscale=1
     sprite_index=sprite6
}
else if (esquerda=true) {
     hsp=-4;
     image_xscale=-1;
     sprite_index=sprite6
}  
else {
     hsp=0;
     sprite_index=sprite0
}

if (place_meeting(x,y+vsp,chao)) {
      grav=0;
      vsp=0;
      if (place_meeting(x,y-16,chao)) {
          grav=0;
          vsp=0;
          saltar=false      
      } else {
            saltar=true
      }
}
else {
      grav=0.5
      saltar=false
}

if (cima=true) {
    if (saltar=true){
    vsp=-6;
    }
}

if (place_meeting(x+hsp,y-1,chao)) {
    hsp=0
}

if (place_meeting(x,y,slimeLVL1)) {
    if (y >= other.y)  {
      global.matar = true;
      vsp=-5;      
    } else {
      global.matar = false;
    }
} else {
   global.matar = false;
}

AGORA O CODIGO DO MONSTRO

CREATE:

Código:
hsp=0;
vsp=0;
grav=0.5;
saltar=false;
direcao=true

image_speed=0.3


STEP:

Código:
vsp += grav;
y += vsp;
x += hsp;

if (direcao=true) {
    hsp=choose(-2,2);
    direcao=false;
}

if (hsp=2) {
    image_xscale=1;
} else {
    image_xscale=-1;
}

if (place_meeting(x,y+vsp,chao)) {
      grav=0;
      vsp=0;
      if (place_meeting(x,y-16,chao)) {
          grav=0;
          vsp=0;            
              
      }
}
else {
      grav=0.5
      saltar=false
}


    if (saltar=true){
    vsp=-5;
}


if (place_meeting(x+hsp,y-1,chao)) {
    hsp=0;
    direcao=true;
}


COLISÃO COM O PLAYER:

Código:
if (global.matar=true){
    
    Monstro_morto=instance_create(x,y-1,deadSlimeLVL1);
  Monstro_morto.image_xscale=sign(hsp)
    
    hspeed = 0;
    vspeed = 0;
    
    x = x;
    y = y;
    
      instance_destroy();
    
} else {
      
  global.Hearts -= 1
  
        
}
    
      



Quando eu pulo em cima do monstro ele muda para o objeto monstro_morrendo:

CREATE:

Código:
hsp=0;
vsp=0;
grav=0.5;
saltar=false;
direcao=true

image_speed=0.3


STEP:

Código:
vsp += grav;
y += vsp;
x += hsp;


if (place_meeting(x,y+vsp,chao)) {
      grav=0;
      vsp=0;
      if (place_meeting(x,y-16,chao)) {
          grav=0;
          vsp=0;            
              
      }
}


if (place_meeting(x+hsp,y-1,chao)) {
    hsp=0;
    direcao=true;
}


ANIMATION END:

Código:
image_index = 21;


katisuke

Número de Mensagens : 31
Data de inscrição : 05/03/2015
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: Tenho um problema no meu jogo estilo mario

Mensagem por caiquerafinha em Qui 12 Mar 2015, 02:33

Pra ele ficar imune a um tempo, coloca no codigo de CREATE do personagem:

Código:
tocar = true;

Quando ele colide com o lado do inimigo coloque depois dele perder vida.

Código:
tocar = false;

e no Evento Step de colisão, checa se o tocar for true, ele vira false.

E adiciona no step também:

Código:
if (tocar == false)
{
image_alpha =0.5
}
else
{
image_alpha = 1
}

caiquerafinha

Número de Mensagens : 39
Idade : 15
Data de inscrição : 12/04/2014
Reputação : 8
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Tenho um problema no meu jogo estilo mario

Mensagem por aminaro em Qui 12 Mar 2015, 12:18

Fiz essa engine aqui, esta em .GMZ
http://www.4shared.com/file/o57w29Cmce/engine_colisao_com_mob.html?

e arqui está o executável de como ela funciona
http://www.4shared.com/file/WwI7FlMMce/engine_colisao_com_inimigo-100.html?

Espero que possa ser util no seu projeto.

aminaro

Ranking : Nota D
Número de Mensagens : 64
Idade : 24
Data de inscrição : 31/01/2014
Notas recebidas : D
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

Re: Tenho um problema no meu jogo estilo mario

Mensagem por Isquilo_Roedor em Qui 12 Mar 2015, 13:26

Eu também uso este código, vi a mesma video aula no youtube, e  sei qual o problema e como solucionar, está nessa parte aqui eu acho

Código:
vsp += grav;
y += vsp;
x += hsp;

direita = keyboard_check(ord("D"));
esquerda = keyboard_check(ord("A"));
cima = keyboard_check(ord("W"));

if (direita=true) {
     hsp=4;
     image_xscale=1
     sprite_index=sprite6
}
else if (esquerda=true) {
     hsp=-4;
     image_xscale=-1;
     sprite_index=sprite6
}  
else {
     hsp=0;
     sprite_index=sprite0
}

if (place_meeting(x,y+vsp,chao)) {
      grav=0;
      vsp=0;
      if (place_meeting(x,y-16,chao)) {
          grav=0;
          vsp=0;
          saltar=false      
      } else {
            saltar=true
      }
}
else {
      grav=0.5
      saltar=false
}

if (cima=true) {
    if (saltar=true){
    vsp=-6;
    }
}

if (place_meeting(x+hsp,y-1,chao)) {
    hsp=0
}

if (place_meeting(x,y-15,slimeLVL1)) { //coloquei -15 do lado do y mas ajuste esse valor até dar certo, se não der com - 15 tente -30 se nao der tente +30 +15 e etc
    if (y >= other.y)  {
      global.matar = true;
      vsp=-5;      
    } else {
      global.matar = false;
    }
} else {
   global.matar = false;
}


ps: esse    if (y >= other.y)  { não deveria estar ai cara, você deve ter feito isso e virou uma gambiarra porque que eu me lembre nao tem esse código ai

Isquilo_Roedor

Ranking : Nota D
Número de Mensagens : 334
Idade : 16
Data de inscrição : 22/03/2012
Notas recebidas : E-E-D
Reputação : 18
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Tenho um problema no meu jogo estilo mario

Mensagem por katisuke em Qui 12 Mar 2015, 17:47

vcs sao feras, esse site é genial, vlw isquilo roedor ajudou pakas e muito obrigado aminaro, os codigos são otimos. O unico que não funcionou foi o seu caiquerafinha, mas vlw pela ajuda. :DDD

katisuke

Número de Mensagens : 31
Data de inscrição : 05/03/2015
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: Tenho um problema no meu jogo estilo mario

Mensagem por aminaro em Qui 12 Mar 2015, 17:50

Que bom que podemos ajudar-lo.
Laughing Cool

aminaro

Ranking : Nota D
Número de Mensagens : 64
Idade : 24
Data de inscrição : 31/01/2014
Notas recebidas : D
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

Re: Tenho um problema no meu jogo estilo mario

Mensagem por Isquilo_Roedor em Qui 12 Mar 2015, 22:06

Foi muita coincidência mesmo você estar usando o mesmo código que eu, eu também utilizo no meu jogo que estou desenvolvendo.

Isquilo_Roedor

Ranking : Nota D
Número de Mensagens : 334
Idade : 16
Data de inscrição : 22/03/2012
Notas recebidas : E-E-D
Reputação : 18
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Tenho um problema no meu jogo estilo mario

Mensagem por katisuke em Dom 15 Mar 2015, 21:26

Gente, eu não sei por que isso aconteceu, eu não mudei nada no meu codigo, mas eu fui testar matar o inimigo de uma altura grande, e infelizmente apareceu outro bug, quando eu pulo no inimigo de uma altura normal, eu mato de boa e ocorre tudo como planejado.
Mas quando eu pulo de uma altura um pouco grande, eu levo dano :/ e o inimigo nao morre

katisuke

Número de Mensagens : 31
Data de inscrição : 05/03/2015
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: Tenho um problema no meu jogo estilo mario

Mensagem por aminaro em Seg 16 Mar 2015, 06:44

creio que isso ocorra porque a gravidade fica aumentando enquanto o player cai. E por algum motivo a forca da gravidade acaba colocando o player pra colidir com o inimigo com muita força e acaba não lendo o script.

Tenta colocar assim no step do player.

Código:

if(vsp>=10){
  vsp = 10;  
}

ver se isso funciona e se não funcionar tenta faze o mesmo com o grav.

aminaro

Ranking : Nota D
Número de Mensagens : 64
Idade : 24
Data de inscrição : 31/01/2014
Notas recebidas : D
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

Re: Tenho um problema no meu jogo estilo mario

Mensagem por katisuke em Seg 16 Mar 2015, 14:14

Funcionou, eu coloquei vsp>=7 ai ficou certinho, vlw de novo maninho :p

katisuke

Número de Mensagens : 31
Data de inscrição : 05/03/2015
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: Tenho um problema no meu jogo estilo mario

Mensagem por Isaque Onix em Seg 16 Mar 2015, 14:24

cheque pelo inimigo como você checa pelo chão. ex:

Código:
place_free(x,y+vsp)//CHECA PELO CHÃO



place_meeting(x,y+vsp+1,inimigo)
//OU
if(other.y-abs(vsp)<=y){}//CHECA PELO INIMIGO.

Isaque Onix

Número de Mensagens : 1597
Idade : 22
Data de inscrição : 15/08/2010
Reputação : 147
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Re: Tenho um problema no meu jogo estilo mario

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


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