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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
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?
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