Conectar-se

Esqueci minha senha

Últimos assuntos
» [Enquete] Concursos GMBR
por Willy Hoje à(s) 19:49

» CR - Concurso Relâmpago!!
por Willy Ter 18 Jul 2017, 17:11

» 3D:como rodar a camara em horizontal?
por Cambalinho Ter 18 Jul 2017, 15:09

» [Resolvido] pode explicar a d3d_set_projection()?
por Cambalinho Ter 18 Jul 2017, 11:28

» Escrever a resposta certa muda de room
por PedroX Seg 17 Jul 2017, 21:46

» Nota de esclarecimento - GMBR voltou!
por Mentos e Coca-cola Seg 17 Jul 2017, 17:05

» [CR] Campo Minado
por Katerp Dom 16 Jul 2017, 23:09

» [CR] The Bazooka Cat
por Tedi Ripper Dom 16 Jul 2017, 23:01

» Como melhorar um protótipo(Design)
por lolandoplayer Dom 16 Jul 2017, 22:56

» Diminuir velocidade ao arrastar objeto
por LwysF Dom 16 Jul 2017, 17:33

Quem está conectado
22 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 21 Visitantes

Tedi Ripper

[ Ver toda a lista ]


O recorde de usuários online foi de 324 em Ter 05 Out 2010, 13:36
Estatísticas
Temos 12700 usuários registrados
O último usuário registrado atende pelo nome de Eduardo Gomes

Os nossos membros postaram um total de 220919 mensagens em 30412 assuntos

Área de atrito do sprite

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

Área de atrito do sprite

Mensagem por rafarubim 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
rafarubim

Data de inscrição : 20/01/2011
Número de Mensagens : 65
Insígnias de JAM :

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Área de atrito do sprite

Mensagem por Supersonic933 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
Supersonic933

Ranking : Nota E
Notas recebidas : E
Data de inscrição : 14/02/2011
Número de Mensagens : 396
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário http://planetaanalisandogames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Área de atrito do sprite

Mensagem por fredcobain em Ter 10 Maio 2011, 19:10

Use a função place_meeting().

Lembre-se de ajustar a máscara (prefiro mascaras retangulares).
avatar
fredcobain

Ranking : Sem avaliações
Data de inscrição : 14/04/2011
Número de Mensagens : 691
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Área de atrito do sprite

Mensagem por rafarubim 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
rafarubim

Data de inscrição : 20/01/2011
Número de Mensagens : 65
Insígnias de JAM :

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Área de atrito do sprite

Mensagem por Grotle 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
Grotle

Ranking : Nota B
Notas recebidas : B-B
Data de inscrição : 28/02/2010
Número de Mensagens : 559
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário http://gsogaming.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Área de atrito do sprite

Mensagem por rafarubim 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
rafarubim

Data de inscrição : 20/01/2011
Número de Mensagens : 65
Insígnias de JAM :

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Área de atrito do sprite

Mensagem por Markituh 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
Markituh

Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Área de atrito do sprite

Mensagem por gutto 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
avatar
gutto

Data de inscrição : 12/06/2012
Número de Mensagens : 25
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

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