Conectar-se
Quem está conectado
36 usuários online :: 5 usuários cadastrados, Nenhum Invisível e 31 Visitantes

CRP-Max, gart30, Ismaelgames7, MrRafael, Willy

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 : 02/11/2011
Número de Mensagens : 103
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

[Ajuda] Como faço isso?

em Sab 05 Maio 2012, 14:51
Olá pessoal, estou com dúvida em relação a colisões. Não tenho a mínima ideia de como fazer com que quando eu encoste na bola eu empurre ela dependendo da minha posição, não que ela grude em min. Assim :

O jogador encosta nela e empurra ela e se apertar determinado botão quando encostar ela vai mais longe


Já olhei vários tópicos sobre colisões, tenho um bom conhecimento em gml só que mesmo assim não consegui fazer esse tipo de colisão.

Agradeço dez de já. Abração!
avatar
Ranking : Nota D
Notas recebidas : D - C - D - C
Data de inscrição : 14/05/2009
Número de Mensagens : 709
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 1
Ver perfil do usuáriohttp://www.jogosdahora.maisblog.net

Re: [Ajuda] Como faço isso?

em Seg 21 Maio 2012, 12:48
tente usar move_contact_solid() onde o obj solido pode ser o player, se apertar a tecla vc aumenta o maxdir.
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Ajuda] Como faço isso?

em Seg 21 Maio 2012, 20:09


Amigo, isso é mais complexo do que a solução simples que eu vou colocar aqui, mas talvez te dê uma ideia de como começar a fazer.

No caso, isso seria colocado na colisão com a bola:

Código:

// Pega o movimento em relação ao passo anterior
xx := x - xprevious;
yy := y - yprevious;

// Aplica o resultado na posição da bola (empurra)
other.x += xx;
other.y += yy;

// Se há diferença e for apertado o botão de chute...
if (xx <> 0) or (yy <> 0) and keyboard_check_pressed(vk_space) then
begin

    // Aplica direção e velocidade na bola.
    other.direction := point_direction(xprevious, yprevious, x, y);
    other.speed := 10;
end;
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