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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 20/01/2011
Número de Mensagens : 65
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Área de atrito do sprite

em Ter 10 Maio 2011, 18:47
Ok, pessoal, eu pesquisei e não achei nada assim então tenho duas dúvidas:

1-Estou fazendo meu 1º jogo com gravidade (não que eu seja tão inexperiente, mas não sou tão bom, né ;] ), e~estou com uma dúvida no seguinte: se vou fazer uma pedra, por exemplo e faço uma colisão com ela, preciso de um código diferente do que se eu pular em cima dela. Como eu faço para reconhecer se a colisão está ocorrendo em certa área do sprite? (tentei com máscaras mas não deu certo)

2- Se eu for para a direita, como faço para a tela me acompanhar, assim como nos jogos do mario?[[[Respondida]]]

Vlw pela ajuda!


Última edição por rafarubim em Ter 10 Maio 2011, 19:16, editado 1 vez(es)
avatar
Ranking : Nota E
Notas recebidas : E
Data de inscrição : 14/02/2011
Número de Mensagens : 396
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://planetaanalisandogames.blogspot.com/

Re: Área de atrito do sprite

em Ter 10 Maio 2011, 19:03
1 - Faça estilo de pulo de inimigo:

Colisão Player com inimigo:
Código:

if (y >= other.y)
{
    instance_destroy(); //destroi a bolinha
    live = live - 1; //diminui uma vida
} else
{
  with (other)
  {
      instance_destroy(); //destroi o inimigo nesse caso  o 'other'
      score = score + 100; //aumenta o seu ponto.
  }
}

2 - Acesse este tuto: http://gmbr.forumeiros.com/t12502-tutorial-de-view
avatar
Ranking : Sem avaliações
Data de inscrição : 14/04/2011
Número de Mensagens : 691
Insígnias de JAM :

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

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

Re: Área de atrito do sprite

em Ter 10 Maio 2011, 19:10
Use a função place_meeting().

Lembre-se de ajustar a máscara (prefiro mascaras retangulares).
avatar
Data de inscrição : 20/01/2011
Número de Mensagens : 65
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Área de atrito do sprite

em Ter 10 Maio 2011, 19:13
A pergunta 1 não é isso, é realmente uma pedra em que se você encosta nela hspeed=0 e se pula nela vspeed=0 e outros codigos meus.
EDIT: como se usa a função place_meeting?
Vlw pela 2 Smile
avatar
Ranking : Nota B
Notas recebidas : B-B
Data de inscrição : 28/02/2010
Número de Mensagens : 559
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://gsogaming.blogspot.com/

Re: Área de atrito do sprite

em Ter 10 Maio 2011, 19:24
O place_meeting verifica se há algo colidindo com o objeto nas coordenadas dadas. Por exemplo, se você quiser verificar se há uma pedra abaixo do player, você deve fazer isso:
if place_meeting(x,y+8,obj_pedra) //se houver uma pedra oito pixels abaixo do player...
{
//executa uma ação
}


Se você quiser verificar se há uma pedra do lado direito do player, você deve fazer isso:
if place_meeting(x+8,y,obj_pedra) //se houver uma pedra oito pixels à direita do player...
{
//executa uma ação
}


Espero que ajude!
Flws!
avatar
Data de inscrição : 20/01/2011
Número de Mensagens : 65
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Área de atrito do sprite

em Ter 10 Maio 2011, 19:38
Só o evento de colision está dando certo, eu tento usar o place_meeting e vspeed=0, mas a gravidade continua puxando Sad
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

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

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

Re: Área de atrito do sprite

em Ter 10 Maio 2011, 20:06
Que tipo de gravidade você está usando? Se for:
Código:
if place_free(x,y+1)
{
gravity=1
}
, é bom adicionar um else, caso contrário ficará o tempo todo puxando o objeto para baixo.
Código:
if place_free(x,y+1)
{
gravity=1
}
else
{
gravity=0 // Desativa a gravidade, permitindo assim o player se movimentar.
}
avatar
Data de inscrição : 12/06/2012
Número de Mensagens : 25
Insígnias de JAM :

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

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

Re: Área de atrito do sprite

em Sab 16 Jun 2012, 20:57
vc devia tentar usar o dragdrop ao inves do codigo se vc for inexperiente
pra checar uma colisão com qualquer objeto vc pode tentar o seguinte:
1 - tenta no check_empty x=0 y=1 relative
2 - check collision x=0 y=1 relative
3 - (se for determinado obj em q a pedra vai cair) check_object (obj_chao) x=0 y=1 relative
(nos tres casos usei a parte de baixoo como foco mas pode colocar qualquer lado )
na gravidade vc tenta colocar check_empty x=0,y=1 relative gravity direction = 270 gravity = 1 else gravity direction = 270 gravity = 0
Conteúdo patrocinado

Re: Área de atrito do sprite

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