[PERGUNTA] Colisão com inimigo

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

[PERGUNTA] Colisão com inimigo

Mensagem por caiquerafinha em Seg 23 Fev 2015, 05:13

Então galera, meu jogo o personagem sempre está focado no mouse, porém movimentos com W,A,S,D.
Porém queria que quando um inimigo colidisse com ele, ele iria pra trás, um pouco, tipo a colisão quando leva um soco, tentei usar o move_contact porém se eu do um direção, ele sempre vai nela.
O QUE EU QUERIA?
a bom queria que tipo dependesse do lugar que o inimigo batesse ele fosse para o lado oposto, por exemplo se o inimigo bate na direita, ele vai um pouco pra esquerda...
Porém como ele tem muitas direções fica complicado! Agradeço quem puder ajudar! tongue pirat Suspect Razz

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: [PERGUNTA] Colisão com inimigo

Mensagem por Fuzenrad em Seg 23 Fev 2015, 09:17

Você programou o movimento usando direction e speed?

Se sim, é só você fazer speed = -1; e setar um alarm pra speed=0 depois de alguns steps, a direção já estará correta durante a colisão.

Ou, de modo mais complexo, você usa o "point_direction", mais ou menos assim:

//Determina a direção do inimigo em relação ao jogador
direction = point_direction(x,y,ob_inimigo.x,ob_inimigo.y);
//Move no sentido contrário
speed = -1; //Velocidade desejada (negativa)

Nesse caso também é necessário configurar um alarm pra parar o movimento após alguns steps.

Fuzenrad

Ranking : Nota A
Número de Mensagens : 1026
Idade : 26
Data de inscrição : 04/07/2010
Notas recebidas : A-A-A-A-B
Reputação : 41
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: [PERGUNTA] Colisão com inimigo

Mensagem por Riccardoric em Seg 23 Fev 2015, 11:18

Eae,
Eu não sei como fazer ele ir pra trás, (quer dizer até consigo), mas eu queria falar para voce que pra fazer tipo quando o inimigo for a direita ou a esquerda do player, pra fazer isso voce pode simplesmente usar esse codigo:
Code:

Código:
if player_obj.x<x { sprite_index=boss_esq_spr }
if player_obj.x>x { sprite_index=boss_dir_spr }
Usei esse code numa engine de boss que fiz, é so colocar isso no step do inimigo, e colocar entre { } o que quer que aconteca ou simplesmente se precisar usar em outro contexto pega isso :
Código:
x>x e x<x
que é o que vai dizer se estar a direita ou esquerda do x, espero ter ajudado.
Flws flw

Riccardoric

Número de Mensagens : 206
Idade : 17
Data de inscrição : 17/06/2014
Reputação : 34
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [PERGUNTA] Colisão com inimigo

Mensagem por Sewer Crawler em Seg 23 Fev 2015, 18:13

Código:
move_contact_solid  (-direction, 25)

Não sei porque, mas aqui só deu certo quando inverti os valores das direções de Left e Right
Ficou assim:
Left=0
Right=180
Up e Down funcionaram normal, sem inverter.
Se alguém souber explicar...

Sewer Crawler

Número de Mensagens : 236
Idade : 23
Data de inscrição : 08/10/2014
Reputação : 27
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [PERGUNTA] Colisão com inimigo

Mensagem por caiquerafinha em Seg 23 Fev 2015, 18:49

Testei d todos os modos mais nenhum deu certo estou usando o mouse para o player olhar na direção...e o WASD para mover, e uso para a movimentação o (x = valor)

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: [PERGUNTA] Colisão com inimigo

Mensagem por Sewer Crawler em Seg 23 Fev 2015, 18:53

Não tem como vc postar um exemplo do que qer fazer? Talvez possamos achar uma solução.

Sewer Crawler

Número de Mensagens : 236
Idade : 23
Data de inscrição : 08/10/2014
Reputação : 27
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [PERGUNTA] Colisão com inimigo

Mensagem por Black Studio em Seg 23 Fev 2015, 18:55

Oi amor... EAE MANO
Bem, o que você pode fazer é o seguinte:

Primeiramente, você deve fazer um sistema aonde o jogador tem a velocidade limitada enquanto anda, porém se sua velocidade for maior do que a permitida, ele ainda possa ficar acima da velocidade permitida, porém sua velocidade diminui rapidamente até chegar na velocidade maxima. Para dar um efeito de impacto mais realista.
Então basicamente, ao invés de usar:
Código:
if speed>5 then speed=5
Você usa algo como:
Código:

friction=0.5
if speed>5
{
friction=1
}

Agora sim você está pronto para colocar impactos no seu jogador!

Eu recomendo que você coloque uma "Invencibilidade" no jogador, para que ele não perca dano descontroladamente.

E então no evento de colisão com o inimigo:
Código:
if invencivel<=0
{
speed=10 //muda a velocidade do jogador, para fazer o Knockback
direction=point_direction(other.x,other.y,x,y) //Pega a direção usando a posição do inimigo e do player, e muda a direção do jogador, fazendo com que ele seja jogado a direção contraria do inimigo.
invencivel=30 //deixa ele invencivel por 30 frames, não se esqueça de colocar no Step um invencivel-=1, para que ele nao fique invencivel para sempre!
}

Black Studio

Ranking : Nota C
Número de Mensagens : 337
Idade : 18
Data de inscrição : 19/10/2011
Notas recebidas : C + C
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [PERGUNTA] Colisão com inimigo

Mensagem por Wendryos em Seg 23 Fev 2015, 18:58

Olá caique!

Coloca isso no Colision Event com o objeto :

if direction >= 0 && direction <= 45 {x-=16};
if direction > 45 && direction < 135 {y+=16};
if direction > 135 && direction <= 225 {x+=16};
if direction > 225 && direction < 315 {y-=16};

Tenho quase certeza que funcionara, flw.

Wendryos

Ranking : Nota D
Número de Mensagens : 192
Data de inscrição : 21/04/2014
Notas recebidas : D
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [PERGUNTA] Colisão com inimigo

Mensagem por Black Studio em Seg 23 Fev 2015, 19:06

Black Horn escreveu:Olá caique!

Coloca isso no Colision Event com o objeto :

if direction >= 0 && direction <= 45 {x-=16};
if direction > 45 && direction < 135 {y+=16};
if direction > 135 && direction <= 225 {x+=16};
if direction > 225 && direction < 315 {y-=16};

Tenho quase certeza que funcionara, flw.

O problema de mudar a posição assim drasticamente, é que o jogador pode ficar preso num solido. Então é recomendado que use as funções de velocidade mesmo.
Além de evitar bugs, deixa o jogo com uma movimentação melhor e mais plastica Happy

Black Studio

Ranking : Nota C
Número de Mensagens : 337
Idade : 18
Data de inscrição : 19/10/2011
Notas recebidas : C + C
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [PERGUNTA] Colisão com inimigo

Mensagem por Wendryos em Seg 23 Fev 2015, 19:16

Bom ele que usa a opção que mais o convir.

Wendryos

Ranking : Nota D
Número de Mensagens : 192
Data de inscrição : 21/04/2014
Notas recebidas : D
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [PERGUNTA] Colisão com inimigo

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


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