Deslizar pelas paredes

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

Deslizar pelas paredes

Mensagem por jp_away em Qua 21 Out 2009, 21:42

Alguem sabe como tipo o obj_carro colidir com o obj_parede ele deslizar, em vez de travar nas paredes??

jp_away

Ranking : Nota D
Número de Mensagens : 859
Data de inscrição : 05/09/2009
Notas recebidas : D
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://www.jpgamesweb.xpg.com.br/

Voltar ao Topo Ir em baixo

Re: Deslizar pelas paredes

Mensagem por KinKing em Qui 22 Out 2009, 15:41

Fiz um exemplo para você. Apesar de você não ter dado absolutamente NENHUM detalhe de como seu jogo é, eu acho que pude adivinhar mais ou menos...

Clique AQUI para baixá-lo.

O evento collison e step são os mais importantes no meu exemplo, mas não funcionam sem as variáveis do create. Com esse exemplo, um objeto desliza pelas paredes ao invés de travar nelas, sem perder hspeed/vspeed correspondentes à batida.

KinKing

Número de Mensagens : 416
Data de inscrição : 29/05/2008
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://felipejoys.webnode.com

Voltar ao Topo Ir em baixo

Re: Deslizar pelas paredes

Mensagem por jp_away em Qui 22 Out 2009, 17:50

é meu jogo de taxi Very Happy mais desse jeito na hora que eu colido com a parede o carro muda de posição...e tbm eu num intindi muito ...axo que fiz errado =/

jp_away

Ranking : Nota D
Número de Mensagens : 859
Data de inscrição : 05/09/2009
Notas recebidas : D
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://www.jpgamesweb.xpg.com.br/

Voltar ao Topo Ir em baixo

Re: Deslizar pelas paredes

Mensagem por KinKing em Sex 23 Out 2009, 11:42

Vou comentar o código create, step e collision aqui. Se você estiver com dificuldade para ler, copie e cole por cima no no GM, que fica mais arrumado, já com as cores certas.
Outras pessoas que quiserem usar isso, lembrem-se que é mais fácil baixar o arquivo para não ter que fazer os eventos de arrow press/release.

CREATE
Código:
/* Variáveis que são usadas para ver quais direções estão apertadas.
Só left OU right pode ser true, e só up OU down pode ser true.*/
left = false;
up = false;
down = false;
right = false;

STEP
Código:
/* Aqui temos as condições para aumentar a velocidade do nosso carro (?).
Checamos:
a) Se a direção correspondente está apertada
b) Se o lugar onde queremos chegar está vago
  (no caso, nosso x + ou - 1 + velocidade horizontal,
  e nosso y + ou - 1 + velocidade vertical)
c) Se a velocidade está menor que a limite, para o carro não ficar com velocidade infinita*/

    if (left  == true && (place_free(x-1+hspeed,y+vspeed) && hspeed > -3)) {hspeed -= 0.5;}
else if (right == true && (place_free(x+1+hspeed,y+vspeed) && hspeed <  3)) {hspeed += 0.5;}

    if (up    == true && (place_free(x+hspeed,y-1+vspeed) && vspeed > -3)) {vspeed -= 0.5;}
else if (down  == true && (place_free(x+hspeed,y+1+vspeed) && vspeed <  3)) {vspeed += 0.5;}

COLISÃO COM OBJ_PAREDE
Código:
/* Aqui, conferimos se o estamos na mesma VERTICAL do objeto com o qual estamos
colidindo. Se estivermos, executamos o código.*/

if (other.x < x && other.x+other.sprite_width > x)
{
    if (vspeed > 0) {move_contact_solid(270,vspeed);}
    else            {move_contact_solid( 90,vspeed);}
    vspeed = 0;
}

/* A mesma coisa que o de cima, mas para a linha HORIZONTAL. Por exemplo:
Se estivermos do lado do objeto direito, isso acontece.*/

else if (other.y < y && other.y+other.sprite_width > y)
{
    if (hspeed > 0) {move_contact_solid(  0,hspeed);}
    else            {move_contact_solid(180,hspeed);}
    hspeed = 0;
}

/*

--------
|      |
1------3
  -2-
Vê aqui como o 2 está entre o 1 e o 3? O 2 é o nosso objeto, E o quadrado é a
caixa com que ele colide. Nesse caso, roda o primeiro if desse código.
*/

KinKing

Número de Mensagens : 416
Data de inscrição : 29/05/2008
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://felipejoys.webnode.com

Voltar ao Topo Ir em baixo

Re: Deslizar pelas paredes

Mensagem por Conteúdo patrocinado Hoje à(s) 17:20


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