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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 05/03/2015
Número de Mensagens : 31
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

Tenho um problema no meu jogo estilo mario

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;

avatar
Data de inscrição : 12/04/2014
Número de Mensagens : 39
Insígnias de JAM :

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

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

Re: Tenho um problema no meu jogo estilo mario

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
}
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 31/01/2014
Número de Mensagens : 64
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: Tenho um problema no meu jogo estilo mario

em Qui 12 Mar 2015, 12:18
Fiz essa engine aqui, esta em .GMZ
4shared.com/file/o57w29Cmce/engine_colisao_com_mob.html?

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

Espero que possa ser util no seu projeto.
avatar
Ranking : Nota D
Notas recebidas : E-E-D
Data de inscrição : 22/03/2012
Número de Mensagens : 334
Insígnias de JAM :

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

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

Re: Tenho um problema no meu jogo estilo mario

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

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
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 31/01/2014
Número de Mensagens : 64
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: Tenho um problema no meu jogo estilo mario

em Qui 12 Mar 2015, 17:50
Que bom que podemos ajudar-lo.
Laughing Cool
avatar
Ranking : Nota D
Notas recebidas : E-E-D
Data de inscrição : 22/03/2012
Número de Mensagens : 334
Insígnias de JAM :

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

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

Re: Tenho um problema no meu jogo estilo mario

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

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
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 31/01/2014
Número de Mensagens : 64
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: Tenho um problema no meu jogo estilo mario

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

em Seg 16 Mar 2015, 14:14
Funcionou, eu coloquei vsp>=7 ai ficou certinho, vlw de novo maninho :p
avatar
Data de inscrição : 15/08/2010
Número de Mensagens : 1597
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://spyreserver.16mb.com

Re: Tenho um problema no meu jogo estilo mario

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.
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