Dúvida com mask de ataque

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

Dúvida com mask de ataque

Mensagem por darkdaimon em Sex 27 Jan 2012, 12:32

Olá amigos, estou com um problema na minha engine de plataforma.
Eu criei o meu personagem e fiz uma mascara pra ele com um retangulo preto dos pes a cabeça, para fazer a colisão com o chao etc.
O problema é, quando o meu personagem ataca o monstro só é destruido se ele estiver colado com o personagem, por causa da mask. (o meu personagem ataca com uma espada).

Para o meu personagem eu só tenho um objeto, para os movimentos e ataque são tudo sprites mesmo que eu alterno(sprplayeratacando, sprplayerparado), (sprplayerandando). para eu mudar a mask no ataque para que a colisão da espada com o inimigo fique certa, eu teria que criar um objeto para o ataque certo?, porém isso mudaria totalmente o step, ou não?

STEP

Código:
//gravidade

if place_free(x,y+2)
{
gravity=1
}
else
{
gravity=0
}
//Ataque

if keyboard_check_pressed(ord("Z"))
{
hspeed=0;
image_index=0;
atacando=true;
sprite_index=sprPlayerAtacando

}
else
if(atacando=false)
{
//movimenta��o

if keyboard_check(vk_right)
{
hspeed=+7
sprite_index=sprPlayerAndando
image_xscale=1
}
else
if keyboard_check(vk_left)
{
hspeed=-7 
sprite_index=sprPlayerAndando
image_xscale=-1
}
else
{
hspeed=-0
sprite_index=sprPlayerParado
}
}

if keyboard_check_pressed(vk_up)
{
if !place_free(x,y+2)
{
vspeed=-11
}
}

//n�o grudar nas paredes

if not place_free(x+hspeed,y)
{
hspeed = 0
}



Isso aqui eu coloquei no collision do inimigo
Código:

if objPlayerParado.atacando = true{
instance_destroy()}


Ele anda, ataca tudo certo, o problema em questão é justo esse, ele so destroi o inimigo caso ele esteja COLADO nele, e não a uma certa distancia. (e se eu ataco de costas o inimigo tambem é morto x_x)

Agradeço a ajuda de vocês.

darkdaimon

Número de Mensagens : 20
Data de inscrição : 20/01/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Dúvida com mask de ataque

Mensagem por luiz_eldorado em Sex 27 Jan 2012, 12:45

É melhor voce nao colocar na colisao, e sim numa condicao no step.
Código:
i=instance_nearest(x,y,objInimigo)
if point_distance(x,y,i.x,i.y)>32 {
//codigo que esta na colisao
}
Arrume um pouco este codigo. Talvez nao precise do "instance_nearest".

luiz_eldorado

Ranking : Nota C
Número de Mensagens : 928
Idade : 18
Data de inscrição : 30/07/2011
Notas recebidas : C
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://luizpontes.tk/

Voltar ao Topo Ir em baixo

Re: Dúvida com mask de ataque

Mensagem por darkdaimon em Sex 27 Jan 2012, 13:42

Entendi mais ou menos, no caso seria uma condição de uma certa distancia entre o personagem e o inimigo.

se o personagem estiver atacando
Caso distancia x (entre personagem e inimigo)
inimigo é destruido.

Só não entendi muito bem o código, sou iniciante xD.
Poderia explicar melhor?

Obrigado!

darkdaimon

Número de Mensagens : 20
Data de inscrição : 20/01/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Dúvida com mask de ataque

Mensagem por saim em Sex 27 Jan 2012, 14:43

Eu sugeriria mudar o sprite_mask para o ataque.
Código:
if keyboard_check_pressed(ord("Z"))
{
//mantém o que está lá
mask_index=sprPlayerAtacando;
}
if keyboard_check_released(ord("Z"))
{
mask_index=retanguloPreto;
}


saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Dúvida com mask de ataque

Mensagem por darkdaimon em Sex 27 Jan 2012, 15:45

Saim, eu fiz o que você me disse e ficou assim:

Código:

//gravidade

if place_free(x,y+2)
{
gravity=1
}
else
{
gravity=0
}
//Ataque

if keyboard_check(ord("Z"))
{
hspeed=0;
atacando=true;
sprite_index=sprPlayerAtacando
image_index=0;
mask_index=obj_mask;
}
if keyboard_check_released(ord("Z"))
{
mask_index=sprite5;
sprite_index=sprPlayerParado
image_index=0;

}
else
if(atacando=false)
{
//movimenta��o

if keyboard_check(vk_right)
{
hspeed=+7
sprite_index=sprPlayerAndando
image_xscale=1
}
else
if keyboard_check(vk_left)
{
hspeed=-7 
sprite_index=sprPlayerAndando
image_xscale=-1
}
else
{
hspeed=-0
sprite_index=sprPlayerParado
}
}

if keyboard_check_pressed(vk_up)
{
if !place_free(x,y+2)
{
vspeed=-11
}
}

//n�o grudar nas paredes

if not place_free(x+hspeed,y)
{
hspeed = 0
}



Eu fiz a mascara com a sprite do meu personagem atacando e agora ficou certinho, o monstro é acertado certo, porem a imagem do ataque nao roda fica parada na primeira imagem sendo que o ataque é feito por uma sequencia de 6 imagens.
O que poderia ser?

darkdaimon

Número de Mensagens : 20
Data de inscrição : 20/01/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Dúvida com mask de ataque

Mensagem por saim em Sex 27 Jan 2012, 16:26

Porque você mandou o game maker manter a imagem parada enquanto a tecla estiver pressionada:
if keyboard_check(ord("Z"))
{
hspeed=0;
atacando=true;
sprite_index=sprPlayerAtacando
image_index=0;
mask_index=obj_mask;
}
Tente eliminar essa linha em negrito.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Dúvida com mask de ataque

Mensagem por darkdaimon em Sex 27 Jan 2012, 16:39

Então, acontece o seguinte, se eu aperto o Z o personagem ataca mas não roda todas as imagens, se eu SEGURO o Z, ele roda a imagem do ataque mas enquanto eu manter segurado ele fica atacando...
O certo seria apertar Z ele roda a imagem do ataque e volta para a imagem parado.

darkdaimon

Número de Mensagens : 20
Data de inscrição : 20/01/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Dúvida com mask de ataque

Mensagem por saim em Sex 27 Jan 2012, 17:17

Bom, você quer que ele execute um evento ao terminar a animação, mas está falando pra ele executar ao soltar a tecla. Talvez seja o caso de parar de colocar todo o código no step e passar a usar os demais eventos.

O step é mesmo tentador. Já que ele acontece o tempo, parece muito lógico colocar tudo pra acontecer no step. Mas usar os eventos pode facilitar muito sua vida.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Dúvida com mask de ataque

Mensagem por darkdaimon em Sex 27 Jan 2012, 17:29

O que eu fiz e deu certo agora foi o seguinte:
Coloquei a mudança de mask quando ataca.. mas não voltei para a mascara quando ele nao esta atacando.
Coloquei um evento de (no key) e coloquei para voltar a mascara normal.
E agora a colisão ficou toda certinha, exceto pelo fato de que ele acerta o monstro mesmo de costas x_X.

darkdaimon

Número de Mensagens : 20
Data de inscrição : 20/01/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

ja ta resolvido?

Mensagem por God_of_war425 em Sex 27 Jan 2012, 18:01

topico ja esta resolvido,porque com evento no key vai dar problema porque se ele segura colquer uma tecla do teclado vai continuar com problema que ele disse vai voltar sugiro colocar

if keybord_check_realesed quando tecla for solta aconcete
{//aqui oque vc quer}mais se n quizer n vai na minha so falando que no key da problemas chato pq ele espera que nenhum NENHUMA tecla do teclado esteja presionada pra acontecer algo.

God_of_war425

Número de Mensagens : 510
Idade : 18
Data de inscrição : 29/10/2011
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Dúvida com mask de ataque

Mensagem por darkdaimon em Sex 27 Jan 2012, 18:31

Sim, o problema que estou tendo é na alternação de mascaras, vou postar a engine para ficar melhor a vizualização.
Tenho 2 mascaras, uma para o personagem parado e outra para atacando, o problema da mascara atacando é que eu estou matando o monstro mesmo estando de costas para ele.

teste ai para vocês verem.

setas andam, Z ataca

http://www.4shared.com/file/Aty3zFcM/mascara.html

darkdaimon

Número de Mensagens : 20
Data de inscrição : 20/01/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Dúvida com mask de ataque

Mensagem por Conteúdo patrocinado Hoje à(s) 07: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