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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 05/09/2009
Número de Mensagens : 859
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://www.jpgamesweb.xpg.com.br/

Deslizar pelas paredes

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??
avatar
Data de inscrição : 29/05/2008
Número de Mensagens : 422
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://felipejoys.webnode.com

Re: Deslizar pelas paredes

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.
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 05/09/2009
Número de Mensagens : 859
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://www.jpgamesweb.xpg.com.br/

Re: Deslizar pelas paredes

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 =/
avatar
Data de inscrição : 29/05/2008
Número de Mensagens : 422
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://felipejoys.webnode.com

Re: Deslizar pelas paredes

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.
*/
Conteúdo patrocinado

Re: Deslizar pelas paredes

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