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

Nenhum

Ver toda a lista


Compartilhe
Ir em baixo
avatar
Data de inscrição : 18/08/2010
Número de Mensagens : 414
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

Colisão!

em Seg 07 Jan 2013, 16:25
Eu estou fazendo um jogo no gênero plataforma!
Eu fiquei desenhando as coisas dele primeiro antes de ir programar, mas resolvi programar logo de uma vez, e tem uma coisa que eu ainda não aprendi muito bem, eu já vi engines boas mas impedia que o personagem andava devagar e ate que ele alcançe a velocidade maxima, (Tipo o Mario, ele começa andar devagar depois vai rapido) a engine boa que eu achei fazia o personagem andar rapido, e o friction perdia seu efeito!
Então sera que alguem poderia me passar um sistema bom para mim estuda-lo?
Obrigado por quem ajudar!
avatar
Data de inscrição : 29/12/2011
Número de Mensagens : 182
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áriohttp://www.google.com

Re: Colisão!

em Seg 07 Jan 2013, 16:35
Event Create Create:
Código:
velocidade = 0;
velocidade_maxima = 5; //Modifique para o valor que quiser.
aceleracao = 3; //Modifique para o valor que quiser. Medido em pixels por segundo.
Event Step Step:
Código:
x += velocidade; // Posição horizontal (x) adicionada à velocidade
if not(velocidade >= velocidade_maxima) // Caso a velocidade já não esteja no máximo
{
  velocidade +=aceleracao/room_speed; // Aumentar a velocidade.
}

Boa sorte.
avatar
Data de inscrição : 18/08/2010
Número de Mensagens : 414
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: Colisão!

em Seg 07 Jan 2013, 16:40
Davichococat, isso ainda não resolve ainda! Porque o problema e a colisão e não a velociade!
avatar
Data de inscrição : 29/12/2011
Número de Mensagens : 182
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áriohttp://www.google.com

Re: Colisão!

em Seg 07 Jan 2013, 16:43
Explique novamente a sua pergunta e eu tentarei entender. O primeiro post não ficou claro. O que você quer? O código que eu lhe passei, mas com fricção? O código que eu lhe passei, mas com colisão? Um código totalmente novo de outra coisa?
avatar
Ranking : Nota C
Notas recebidas : D-D-D-C-C-B
Data de inscrição : 15/03/2012
Número de Mensagens : 564
Insígnias de JAM :

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

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

Re: Colisão!

em Seg 07 Jan 2013, 16:50
então vc quer que ele cheque a colisão?
se for isso no step poem assim
Código:

if keyboard_check(vk_right) and place_free(x+4,y)
{
x+=4
}
if keyboard_check(vk_left) and place_free(x-4,y)
{
x-=4
}
se vc nao quer isso descreva melhor Very Happy
avatar
Data de inscrição : 18/08/2010
Número de Mensagens : 414
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: Colisão!

em Seg 07 Jan 2013, 17:13
Vou dizer mais claramente então! (Era porque minha mãe estava querendo mexer no PC)
E que o sistema de colisão que eu fis, funcionou normalmente, porem somente se o personagem colidir por cima do bloco! Mas se for ao lado do bloco, (qualquer lado) ele atravessa! Já tentei varias maneiras, mas não funcionava muito bem, e ser não for pedir demais, poderia ser um sistema que seja possível o personagem subir inclinações?
Eu sei fazer muita coisa interesante no Game Maker, mas a unica coisa que eu ainda não tenho muita experiencia, e colisões!
avatar
Data de inscrição : 29/12/2011
Número de Mensagens : 182
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áriohttp://www.google.com

Re: Colisão!

em Seg 07 Jan 2013, 17:20
Me parece que você está detectando colisão usando uma linha.

Mande o seu código e eu vou tentar ajudar.
avatar
Data de inscrição : 18/08/2010
Número de Mensagens : 414
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: Colisão!

em Seg 07 Jan 2013, 17:24
@Davichococat escreveu:Me parece que você está detectando colisão usando uma linha.

Mande o seu código e eu vou tentar ajudar.
Então ta né?! '-'
Código:
if (collision_rectangle(x,y-31,x+16,y+32,obj_solid,1,0)) {vspeed=0;gravity=0; noar=false;}else {gravity=0.2; noar=true;}
if(keyboard_check_pressed(32)) && noar=false {vspeed=-9;noar=true; friction=0};

if (keyboard_check(ord("D"))) && ! (keyboard_check(ord("A"))) && (place_free(x-5,y))
{parado=false; andando=true; lado=1;hspeed+=0.3; if hspeed>3 {hspeed=3}};
if (keyboard_check(ord("A"))) && ! (keyboard_check(ord("D"))) && (place_free(x-5,y))
{parado=false; andando=true; lado=0;hspeed-=0.3; if hspeed<-3 {hspeed=-3}}else
{friction=0.07; if hspeed=0 {andando=false;parado=true;obj_player_pernas.parado=true; obj_player_pernas.andando=false}}
avatar
Data de inscrição : 29/12/2011
Número de Mensagens : 182
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áriohttp://www.google.com

Re: Colisão!

em Seg 07 Jan 2013, 18:33
Você checou a opção "solid" em obj_solid?
avatar
Data de inscrição : 18/08/2010
Número de Mensagens : 414
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: Colisão!

em Seg 07 Jan 2013, 19:25
Não, porque as vezes o collision_rectangle, falha um pouco, e o personagem entra 1 pixel ou mais no bloco, e ele para de andar!
avatar
Data de inscrição : 29/12/2011
Número de Mensagens : 182
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áriohttp://www.google.com

Re: Colisão!

em Seg 07 Jan 2013, 20:23
O jeito é usar o place_free invés de collision_rectangle. E o place_free só funciona com o solid marcado.
avatar
Data de inscrição : 18/08/2010
Número de Mensagens : 414
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: Colisão!

em Ter 08 Jan 2013, 12:46
Tem certeza? Acho que o "not place_meeting" poderia dar um jeito, mas qual a função ideal para isso?
Lembrando que sou péssimo em colisão ainda, o resto eu até sei fazer no game maker!
avatar
Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

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

Prêmios
   : 0
   : 2
   : 1
Ver perfil do usuáriohttp://xcreatorgames.weebly.com/

Re: Colisão!

em Ter 08 Jan 2013, 12:53
Se você quer levar em conta objetos não sólidos, use o place_empty() ele sempre leva em conta qualquer tipo de objetos.
Flws!
avatar
Data de inscrição : 18/08/2010
Número de Mensagens : 414
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: Colisão!

em Ter 08 Jan 2013, 13:03
Mas isso iria atrapalhar, porque se por exemplo o jogador for pegar um item, o personagem vai parar antes de pega-lo! '-'
Mas acho o place_meeting um boa opção, mas como seria a função disso? Alguém me ajuda? =(


Última edição por superrafao em Ter 08 Jan 2013, 13:08, editado 1 vez(es) (Razão : correção gráfica! (Teclado com problemas kkkk))
avatar
Data de inscrição : 29/12/2011
Número de Mensagens : 182
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áriohttp://www.google.com

Re: Colisão!

em Ter 08 Jan 2013, 13:39
É praticamente a mesma coisa do place_free e place_empty, só que leva em conta objetos.
Código:
place_meeting(x,y,objeto);

Mas porquê não usa linhas de colisão pra detectar se um espaço está vazio?
É ainda melhor que o place_meeting.
avatar
Data de inscrição : 18/08/2010
Número de Mensagens : 414
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: Colisão!

em Ter 08 Jan 2013, 14:55
@Davichococat escreveu:É praticamente a mesma coisa do place_free e place_empty, só que leva em conta objetos.
Código:
place_meeting(x,y,objeto);

Mas porquê não usa linhas de colisão pra detectar se um espaço está vazio?
É ainda melhor que o place_meeting.
Eu sei o que esse codigos fazem, não sou iniciante no game maker ta!
Mas vamos fazer melhor, que tal vocês postarem seus codigos de colisão aqui que funcione em superficies inclinadas?
Conteúdo patrocinado

Re: Colisão!

Voltar ao Topo
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum