Dúvida sobre alternar entre sprite parado antes da colisão e sprite movendo depois que colidir, mas quando acabar a colisão, voltar a ficar parado!

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

Resolvido Dúvida sobre alternar entre sprite parado antes da colisão e sprite movendo depois que colidir, mas quando acabar a colisão, voltar a ficar parado!

Mensagem por Kleber Sampaio Correia em Dom 26 Fev 2012, 19:39

A bola começa parada, quando o player1 colidi nela ela vai trocando de sprite e se movendo com ele, mas quando o player1 solta ela, ela continua trocando de sprite, mesmo parada.

No Create tem:
Código:
if (place_meeting(x,y,player1))
{
sprite_index=ball //ball = sprite bola em troca para 5 movimentos em sprite
}else
{
sprite_index=bola0} //bola0 = sprite bola parado, movimento 1 parado

No Step tem:
Código:
 //por cima
if place_meeting(x,y-10,player1) && keyboard_check(vk_up)
if place_free(x,y-10){y-=10}
else if place_meeting(x,y-10,player1) && keyboard_check(vk_down)
{

if place_free(x,y+10){y+=10}
}

//por baixo
if place_meeting(x,y+10,player1) && keyboard_check(vk_down)
{

if place_free(x,y+10){y+=10}
}
else if place_meeting(x,y+10,player1) && keyboard_check(vk_up)
{
if place_free(x,y-10){y-=10}
}

//pela esquerda
if place_meeting(x-10,y,player1) && keyboard_check(vk_left)
{


if place_free(x-10,y){x-=10}
}
else if place_meeting(x-10,y,player1) && keyboard_check(vk_right)
{

if place_free(x+10,y){x+=10}
}

//pela direita
if place_meeting(x+10,y,player1) && keyboard_check(vk_right)
{

if place_free(x+10,y){x+=10}

else if place_meeting(x+10,y,player1) && keyboard_check(vk_left)
{
if place_free(x-10,y){x-=10}
}
}

Na colisão com o player 1 tem:
Código:
if (place_meeting(x,y,player1))
{
sprite_index=ball
}else
{
sprite_index=bola0}


Última edição por Kleber Sampaio Correia em Sab 03 Mar 2012, 15:34, editado 1 vez(es)

Kleber Sampaio Correia

Número de Mensagens : 13
Idade : 23
Data de inscrição : 11/07/2011
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

Resolvido Re: Dúvida sobre alternar entre sprite parado antes da colisão e sprite movendo depois que colidir, mas quando acabar a colisão, voltar a ficar parado!

Mensagem por lucazn1 em Dom 26 Fev 2012, 22:00

Sou novato, mas acho q é só vc fazer assim...
No create(da bola) vc coloca
Código:
image_speed = 0
dps em colisão com player1 coloca:

Código:
if place_meeting(x,y,player1)
{
image_speed = # //Velocidade do sprite
}

no step (da bola) vc coloca:

Código:
if place_meeting(x,y,player1)
{
}
else
{
image_speed = 0
}

Ou

Voce usa o Action Sprite que ta no main1, coloca o speed em 0 e quando o player colidir vc usa o Action Sprite dnv e coloca speed # //a velocidade que tu quer.
Anyway, esse seu codigo ta meio confuso, ta tudo funcionando ? Razz

lucazn1

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

Voltar ao Topo Ir em baixo

Resolvido Re: Dúvida sobre alternar entre sprite parado antes da colisão e sprite movendo depois que colidir, mas quando acabar a colisão, voltar a ficar parado!

Mensagem por Kleber Sampaio Correia em Qua 29 Fev 2012, 21:49

Não funcionou =/! O place free serve pra ver ou não se há colisão, sem ele o código de empurrar a bola não funciona, e meu código testando não tá errado, eu repeti o mesmo código em create e collision para ver se funcionava, mas só que a bola se movimenta trocando de sprite, mas não para! Eu só quero que ela pare de trocar de sprite estando parada, estando sem colisão =/!

Kleber Sampaio Correia

Número de Mensagens : 13
Idade : 23
Data de inscrição : 11/07/2011
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

Resolvido Re: Dúvida sobre alternar entre sprite parado antes da colisão e sprite movendo depois que colidir, mas quando acabar a colisão, voltar a ficar parado!

Mensagem por Thyago em Qua 29 Fev 2012, 22:37

.Seu código não funciona pelo seguinte.
.Você esta checando se esta colidindo com o player no evento de colisão com o player;

veja o que você fez:
Na colisão com o player 1 tem:

if (place_meeting(x,y,player1))
{
sprite_index=ball
}else
{
sprite_index=bola0}


.Ou seja,nunca vai ser false...
.coloque em step;

Thyago

Ranking : Nota B
Número de Mensagens : 1092
Idade : 30
Data de inscrição : 24/08/2009
Notas recebidas : D+B+B+C+A
Reputação : 31
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   :

Voltar ao Topo Ir em baixo

Resolvido Re: Dúvida sobre alternar entre sprite parado antes da colisão e sprite movendo depois que colidir, mas quando acabar a colisão, voltar a ficar parado!

Mensagem por Camin em Qui 01 Mar 2012, 16:10

Tente isso no step:
Código:
//por cima:
if place_meeting(x,y-10,player){if keyboard_check_direct(vk_up){y-=10 sprite_index=ball}else{sprite_index=bola0}}
//por baixo:
if place_meeting(x,y+10,player){if keyboard_check_direct(vk_down){y+=10 sprite_index=ball}else{sprite_index=bola0}}
//pela esquerda:
if place_meeting(x-10,y,player){if keyboard_check_direct(vk_left){x+=10 sprite_index=ball}else{sprite_index=bola0}}
//pela direita:
if place_meeting(x+10,y,player){if keyboard_check_direct(vk_right){x-=10 sprite_index=ball}else{sprite_index=bola0}}

Funciona mais ou menos assim:

Se a mask encontrar o "player" em (x,y-10){Se up estiver pressionado{o valor do objeto no eixo y diminue em 10 e o sprite é da bola rolando}senão estiver pressionado up o sprite é da bola parada}

Camin

Número de Mensagens : 101
Idade : 24
Data de inscrição : 26/03/2011
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

Resolvido Re: Dúvida sobre alternar entre sprite parado antes da colisão e sprite movendo depois que colidir, mas quando acabar a colisão, voltar a ficar parado!

Mensagem por Kleber Sampaio Correia em Sab 03 Mar 2012, 15:26

O negócio ficou tenso O_O, você anda pra tocar na bola e a bola vai trocando de sprite mas ela atravessa seu corpo e para do outro lado!
Mas muito obrigado pela ajuda gente!
Eu consegui de outra maneira, dando uma estudadinha e testes e o que funcionou foi o jeito de Thyago!

Kleber Sampaio Correia

Número de Mensagens : 13
Idade : 23
Data de inscrição : 11/07/2011
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

Resolvido Re: Dúvida sobre alternar entre sprite parado antes da colisão e sprite movendo depois que colidir, mas quando acabar a colisão, voltar a ficar parado!

Mensagem por Kleber Sampaio Correia em Sab 03 Mar 2012, 15:32

Em create coloquei:

Código:
 if (place_meeting(x,y,player1))
{
sprite_index=ball
}else
{
sprite_index=bola0}

Em step coloquei:

Código:
//por cima
if place_meeting(x,y-6,player1) && keyboard_check(vk_up)
{
if place_free(x,y-3){y-=3}
}
else if place_meeting(x,y-6,player1) && keyboard_check(vk_down)
{
if place_free(x,y+3){y+=3}
}

//por baixo
if place_meeting(x,y+6,player1) && keyboard_check(vk_down)
{
if place_free(x,y+3){y+=3}
}
else if place_meeting(x,y+6,player1) && keyboard_check(vk_up)
{
if place_free(x,y-3){y-=3}
}

//pela esquerda
if place_meeting(x-6,y,player1) && keyboard_check(vk_left)
{
if place_free(x-3,y){x-=3}
}
else if place_meeting(x-6,y,player1) && keyboard_check(vk_right)
{
if place_free(x+3,y){x+=3}
}

//pela direita
if place_meeting(x+6,y,player1) && keyboard_check(vk_right)
{
if place_free(x+3,y){x+=3}
}
else if place_meeting(x+6,y,player1) && keyboard_check(vk_left)
{
if place_free(x-3,y){x-=3}
}
//por cima correndo
if place_meeting(x,y-2,player1) && keyboard_check(vk_up) && keyboard_check(vk_space)
{
if place_free(x,y-2){y-=2}
}
else if place_meeting(x,y-2,player1) && keyboard_check(vk_down) && keyboard_check(vk_space)
{
if place_free(x,y+2){y+=2}
}
//por baixo correndo
if place_meeting(x,y+2,player1) && keyboard_check(vk_down) && keyboard_check(vk_space)
{
if place_free(x,y+2){y+=2}
}
else if place_meeting(x,y+2,player1) && keyboard_check(vk_up) && keyboard_check(vk_space)
{
if place_free(x,y-2){y-=2}
}
//pela esquerda correndo
if place_meeting(x-2,y,player1) && keyboard_check(vk_left) && keyboard_check(vk_space)
{
if place_free(x-2,y){x-=2}
}
else if place_meeting(x-2,y,player1) && keyboard_check(vk_right) && keyboard_check(vk_space)
{
if place_free(x+2,y){x+=2}
}

//pela direita correndo
if place_meeting(x+2,y,player1) && keyboard_check(vk_right) && keyboard_check(vk_space)
{
if place_free(x+2,y){x+=2}
}
else if place_meeting(x+2,y,player1) && keyboard_check(vk_left) && keyboard_check(vk_space)
{
if place_free(x-2,y){x-=2}
}

e tirei a colisão em drag and drop com o player!

Kleber Sampaio Correia

Número de Mensagens : 13
Idade : 23
Data de inscrição : 11/07/2011
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

Resolvido Re: Dúvida sobre alternar entre sprite parado antes da colisão e sprite movendo depois que colidir, mas quando acabar a colisão, voltar a ficar parado!

Mensagem por Conteúdo patrocinado Hoje à(s) 05:59


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