GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


[Resolvido]Colisão entre dois objetos em velocidade vertical oposta.

+2
.:Allison:.
Willy
6 participantes

Ir para baixo

[Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty Colisão entre dois objetos em velocidade vertical oposta.

Mensagem por Willy Qui 24 Fev 2011, 17:00


>>>TÓPICO DA ENGINE<<<

Estou com um problema com a colisão vertical com dois objetos em direção uma com a outra...

Tenho dois objetos, um é o objeto jogador e a outra é uma plataforma que se move verticalmente...
O problema, é que quando esses dois objetos se colidem, ambos travam. (a plataforma é solida).

O movimento de subir e descer o player ja esta programado, tudo que falta fazer é uma colisao perfeita com velocidade oposta. Exemplo: Jogador com vspeed = 2 e o bloco com vspeed = -4.

O código que estou usando é esse:
Colisao com a plataforma
Código:
if other.solid=true{
if vspeed > 0 && !place_free(x,y + vspeed){
move_contact_solid(direction,vspeed)
}
vspeed = 0
}

Eu acredito que o problema seja o move_contact_solid ou/e o vspeed = 0

Desde já agradeço...
blz


Última edição por Willy em Seg 28 Fev 2011, 22:18, editado 1 vez(es)
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : [Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

[Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty Re: [Resolvido]Colisão entre dois objetos em velocidade vertical oposta.

Mensagem por .:Allison:. Qui 24 Fev 2011, 17:32

tenta isso na colisão

Código:
y=other.y-32 // o Y pulará o "(total do tamanho da sprite do player)" para cima da plataforma vertical! OBS:isso fará o player ficar certinho em cima da plataforma sem trancar no meio dela
vspeed=other.vspeed// e o vspeed será o mesmo da platafoema vertiacal
.:Allison:.
.:Allison:.

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 25/07/2010
Reputação : 4
Número de Mensagens : 630
Prêmios : [Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty

Medalhas x 0 Tutoriais x 14 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://clubmaker.forumeiros.com

Ir para o topo Ir para baixo

[Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty Re: [Resolvido]Colisão entre dois objetos em velocidade vertical oposta.

Mensagem por Willy Qui 24 Fev 2011, 17:43

Agradeço sua ajuda X-Games, porem, não deu certo...
Ja tentei diversos codigos antes, inclusive o que você sugeriu agora...

Esse problema so acontece quando eu caio em cima da plataforma, quando eu simplesmente passo por ela sem pular ou cair, a colisao fica perfeita, o jogdor sobe e desce sem problome algum... O código que estou usando no jogador é esse (Step):
Código:
plat_v=instance_place(x,y+1,obj_plataforma_v);
if instance_exists(plat_v){
    if plat_v.solid=true{
        repeat(4)
        y+=sign(plat_v.vspeed)
      }
}

Obrigado.
blz
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : [Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

[Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty Re: [Resolvido]Colisão entre dois objetos em velocidade vertical oposta.

Mensagem por LCS Qui 24 Fev 2011, 20:28

hmm acho que entendi
tenta isso no step do teu player
Código:
while(!place_free(x+8,y ) )
{
x-=1;
}
while(!place_free(x,y-8 ) )
{
y+=1;
}
while(!place_free(x-8,y ) )
{
x+=1;
}
while(!place_free(x,y+8 ) )
{
y-=1;
}

bom o code ai é facil
enquanto nao estiver lugar_livre(x,y)
{obj da um pulinho pra tras}

claro depois tu edita ali os x e y de acordo com o jeito que tu vai querer testa ae acho que funciona

ps: aprendi isso com o jyraia
LCS
LCS

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 09/03/2010
Reputação : 43
Número de Mensagens : 1035
Prêmios : [Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://www.www.ww.www

Ir para o topo Ir para baixo

[Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty Re: [Resolvido]Colisão entre dois objetos em velocidade vertical oposta.

Mensagem por Willy Qui 24 Fev 2011, 20:43

Tambem não deu certo... Mas foi quase!
Ainda acho que o problema é no move_contact_solid...
Vou continuar tentando aqui... Mas vou continuar aguardando mais possiveis soluções...

Obrigado!
blz
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : [Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

[Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty Re: [Resolvido]Colisão entre dois objetos em velocidade vertical oposta.

Mensagem por PedroX Qui 24 Fev 2011, 21:32

Voce colocou a plataforma como solida, isso faz com que ao bater nela ele pare, independente de um codigo. Entao, isso talvez sirva:

if y > other.y
{move_contact_solid(direction,vspeed)}
vspeed = 0

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6086
Prêmios : [Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

[Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty Re: [Resolvido]Colisão entre dois objetos em velocidade vertical oposta.

Mensagem por Willy Seg 28 Fev 2011, 22:15

Boa a tentativa... Pena que não deu certo. bravo
Ja tentei diversas coisas, mas o problema persiste...
Porém, uma das coisas que mais se aproximou de funcionar foi remover um código que deichava a plataforma não-sólida (Na engine, ela esta normal). Talvez isso ajude de alguma forma...
Eu postei a ENGINE a alguns dias atras, agora fica mais facil de pedir ajuda a vocês...
Eu ficaria muito grato se alguem fosse capaz de resolver esse problema de colisão que insiste em me atormentar...

Agradeço desde já a todos vocês que estão tentando me ajudar!
blz
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : [Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

[Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty Re: [Resolvido]Colisão entre dois objetos em velocidade vertical oposta.

Mensagem por fokao Ter 01 Mar 2011, 06:48

if other.solid=true{
if vspeed > 0 and not place_free(x,y + vspeed){
}
if other.vspeed<0then y+=other.vspeed //linha nova
move_contact_solid(direction,vspeed)
vspeed=0
}

tenta esse.
ps: esses eventos de colisão, sempre dão problema lol

flws
fokao
fokao

Data de inscrição : 14/09/2008
Reputação : 7
Número de Mensagens : 264
Prêmios : [Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty Re: [Resolvido]Colisão entre dois objetos em velocidade vertical oposta.

Mensagem por Markituh Ter 01 Mar 2011, 09:06

Olá Sr.Willy! Tenho um código da comunidade estado-unidense, cujo nome é "Colisão perfeita para plataformers". Eis o código:
Código:
if vspeed > 0 && !place_free(x,y+vspeed)
move_contact(270)
vspeed = 0
Coloca isso na colisão com sua rampa, e veja se dá certo. Caso te interesses, dê uma olhada aqui, econtrará muitos códigos úteis.
Markituh
Markituh

Games Ranking : Sem avaliações

Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios : [Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty Re: [Resolvido]Colisão entre dois objetos em velocidade vertical oposta.

Mensagem por Willy Ter 01 Mar 2011, 12:52

fokao escreveu:if other.solid=true{
if vspeed > 0 and not place_free(x,y + vspeed){
}
if other.vspeed<0then y+=other.vspeed //linha nova
move_contact_solid(direction,vspeed)
vspeed=0
}

tenta esse.
ps: esses eventos de colisão, sempre dão problema lol

flws
O vencedor!
Parabéns, você conseguiu resolver grande parte do meu problema! Digo grande parte pois falta alguns detalhes para aperfeiçoar o codigo (O jogador fica uns 2 pixels de distancia quando sobe e quica quando cai na plataforma quando esta descendo), mas isso ja é outra hitoria e eu posso resolver...
Muito obrigado fokao, mereceu!

Markituh, o seu código não deu certo... Apesar de ser praticamente o mesmo que estou usando na engine, mas eu agradeço a sua intenção mesmo assim!

Muito obrigado a todos que me ajudaram, agora o tópico esta [RESOLVIDO] e a moderação ja pode trancar o tópico.

Mais uma vez, obrigado a todos!
blz
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : [Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

[Resolvido]Colisão entre dois objetos em velocidade vertical oposta. Empty Re: [Resolvido]Colisão entre dois objetos em velocidade vertical oposta.

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos