Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
[ATUALIZADO][Engine]Novo metodo de colisão!
+9
LCS
Mr. Kaleb
PedroX
Machow8
Shadow10
Grotle
.:Allison:.
Mr.Brum
Jiraya
13 participantes
GMBR :: Ensine & Aprenda :: Exemplos :: Game Maker (engines)
Página 1 de 2
Página 1 de 2 • 1, 2
[ATUALIZADO][Engine]Novo metodo de colisão!
Olá a todos!
eu vim lhes dizer que desenvolvi um novo metodo de colisão, creio eu, que seja muito mais efetivo e com muito maior desempenho do que colisão com objetos.
[nota]estou falando de colisão com o mapa
caso n saibam, pelo que parece o precise collision checking do game maker usar 4 for de area w*h, ou seja, é um tanto lento
quando eu usava c++/allegro, para fazer colisao precisa era necessário usar 4 for
for (int w=0;w< sprite1->w;w++)
for (int h=0;h< sprite1->h;h++)
for (int w2=0;w2< sprite2->w;w2++)
for (int h2=0;h2< sprite2->h;h2++)
if (testPixel(x+w,y+h,sprite2))
if (testPixel(x2+w2,y2+h2,sprite1))
return (true);
return (false);
como podem ver, é um sistema meio lento.
mas para agilizar isso no game maker, eu resolvi tirar proveito das tiles, e usar as tiles como mascara de collisão
[UPDATE]
NOVA VERSÃO
todos os bugs foram corrigidos, novo script para facilitar a checagem foi add.
[old version]
eu vim lhes dizer que desenvolvi um novo metodo de colisão, creio eu, que seja muito mais efetivo e com muito maior desempenho do que colisão com objetos.
[nota]estou falando de colisão com o mapa
caso n saibam, pelo que parece o precise collision checking do game maker usar 4 for de area w*h, ou seja, é um tanto lento
quando eu usava c++/allegro, para fazer colisao precisa era necessário usar 4 for
for (int w=0;w< sprite1->w;w++)
for (int h=0;h< sprite1->h;h++)
for (int w2=0;w2< sprite2->w;w2++)
for (int h2=0;h2< sprite2->h;h2++)
if (testPixel(x+w,y+h,sprite2))
if (testPixel(x2+w2,y2+h2,sprite1))
return (true);
return (false);
como podem ver, é um sistema meio lento.
mas para agilizar isso no game maker, eu resolvi tirar proveito das tiles, e usar as tiles como mascara de collisão
[UPDATE]
NOVA VERSÃO
todos os bugs foram corrigidos, novo script para facilitar a checagem foi add.
[old version]
- Spoiler:
esse é o resultado, apenas um objeto foi usado o Player("circulo"). o resto é tudo tile
eu achei isso muito mais rápido do que collisao com objetos.
se todos os programadores passarem a usar este sistema de colisão, eu posso dizer que eles n vao mais precisar se preoculpar com LAG.
caso queiram testar si mesmos, aqui esta o exemplo
Última edição por Jiraya em Seg 23 maio 2011, 21:58, editado 6 vez(es)
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
parabéns pela idéia... já pensei nisso antes,mas pensava que ia gerar mais lag(baseado nos tiles do rpg maker)... flws
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
Gostei mesmo, porém, tem uma desvantagem, é mais complicado !
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
Muito boa engine!
Eu já tiha pensado em um sistema parecido, e pensei como seria aplicá-lo em um jogo, mas acabei esquecendo de testar.
Parabéns pela engine, continue ajudando o nosso fórum a crescer cada vez mais!
Flws!
Eu já tiha pensado em um sistema parecido, e pensei como seria aplicá-lo em um jogo, mas acabei esquecendo de testar.
Parabéns pela engine, continue ajudando o nosso fórum a crescer cada vez mais!
Flws!
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
Sabe de uma coisa? Com esse sistema da pra fazer aqueles obstaculos como no jogo do Bobby Carrot.
É um jogo pelo qual eu sempre quiz fazer um remaker.
Muito bem Jiraya, você é o cara mesmo.
*****Editado*****
Opa!
Funciona como plataforma fantasma também e eu reparei um pequeno bug.
Quando se esta em qualquer lado e é pressionado cima, então a bola pula, até aí tudo bem, só que se estiver na altura da esquina boleada da tile
e é pressionada uma tecla que o leva na direção do mesmo, a bola entra na tile, mas fora isso ta muito boa a ideia.
É um jogo pelo qual eu sempre quiz fazer um remaker.
Muito bem Jiraya, você é o cara mesmo.
*****Editado*****
Opa!
Funciona como plataforma fantasma também e eu reparei um pequeno bug.
Quando se esta em qualquer lado e é pressionado cima, então a bola pula, até aí tudo bem, só que se estiver na altura da esquina boleada da tile
e é pressionada uma tecla que o leva na direção do mesmo, a bola entra na tile, mas fora isso ta muito boa a ideia.
Shadow10- Games Ranking :
Notas recebidas : C
Data de inscrição : 07/11/2010
Reputação : 19
Número de Mensagens : 429
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
Realmente, a engine é muito boa. É bom saber de mais um método de colisão, nos ajudando a escolher o melhor para os nossos jogos sem muito lag ou bug, vlw mesmo!
Última edição por Zignaw em Dom 22 maio 2011, 23:34, editado 1 vez(es)
Machow8- Data de inscrição : 21/05/2011
Reputação : 16
Número de Mensagens : 625
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
Você pode postar outro link?
Eu não consigo baixar...
Parece bem interessante.
Até mais!
Eu não consigo baixar...
Parece bem interessante.
Até mais!
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:
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
Olha ae, PH:
LINK DIRETO
LINK DIRETO
Mr. Kaleb- Games Ranking :
Notas recebidas : C
Data de inscrição : 07/09/2010
Reputação : 21
Número de Mensagens : 1400
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
Pedro Henrique escreveu:Você pode postar outro link?
Eu não consigo baixar...
Parece bem interessante.
Até mais!
Ai cara upei pra ti no 4 shared
http://www.4shared.com/file/dlIOGmi_/CollisionTiles.html
Realmente incrivel orochi nunca tinha pensado que alguem fizesse algo assim,mas como sempre tu surpreende a todos xD
parabens orochi como eu sempre digo tu é o cara
flws
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
Legal, galera, assim outros que tiverem com problema de baixar do link do Jiraya tbm vão poder aproveitar essa ótima engine.
Obrigado pela ajuda de vcs!
Obrigado pela ajuda de vcs!
Última edição por Zignaw em Dom 22 maio 2011, 23:34, editado 1 vez(es)
Machow8- Data de inscrição : 21/05/2011
Reputação : 16
Número de Mensagens : 625
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
Baixei. Valeu pessoal pelos novos links.
Achei a ideia bem legal.
Assim não é preciso criar um objeto, e colocar dezenas de instâncias na room para fazer a colisão.
Muito bom. Eu gostei bastante.
Somente uma pergunta: existe diferença na velocidade de usar isso, ou usar as funções position_meeting (com objetos)?
Até mais!
Achei a ideia bem legal.
Assim não é preciso criar um objeto, e colocar dezenas de instâncias na room para fazer a colisão.
Muito bom. Eu gostei bastante.
Somente uma pergunta: existe diferença na velocidade de usar isso, ou usar as funções position_meeting (com objetos)?
Até mais!
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:
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
muito obrigado a todos!
fico feliz que gostaram
esse sistema de colisão n é preciso, ou seja, checa colisão por, retangulos, mesmo que tenha um buraco na tile, ele ira colidir como se fosse um retangulo normal.
se puder enviar um print desse bug do qual falou, eu poderia averiguar.
fico feliz que gostaram
desculpe, mas eu n consegui encontrar esse bug, o,o.Shadow10 escreveu:Sabe de uma coisa? Com esse sistema da pra fazer aqueles obstaculos como no jogo do Bobby Carrot.
É um jogo pelo qual eu sempre quiz fazer um remaker.
Muito bem Jiraya, você é o cara mesmo.
*****Editado*****
Opa!
Funciona como plataforma fantasma também e eu reparei um pequeno bug.
Quando se esta em qualquer lado e é pressionado cima, então a bola pula, até aí tudo bem, só que se estiver na altura da esquina boleada da tile
e é pressionada uma tecla que o leva na direção do mesmo, a bola entra na tile, mas fora isso ta muito boa a ideia.
esse sistema de colisão n é preciso, ou seja, checa colisão por, retangulos, mesmo que tenha um buraco na tile, ele ira colidir como se fosse um retangulo normal.
se puder enviar um print desse bug do qual falou, eu poderia averiguar.
a unica diferença, é que o place_meeting, checa se há objetos em uma certa posição, e o tile_layer_find, checa tiles, numa certa posição, fora isso são exatamente iguaisPedro Henrique escreveu:Baixei. Valeu pessoal pelos novos links.
Achei a ideia bem legal.
Assim não é preciso criar um objeto, e colocar dezenas de instâncias na room para fazer a colisão.
Muito bom. Eu gostei bastante.
Somente uma pergunta: existe diferença na velocidade de usar isso, ou usar as funções position_meeting (com objetos)?
Até mais!
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
Muito legal, eu tinha usado isso em um projeto e funcionou perfeitamente, foi num jogo de aviao de labirinto auto-gerado usando tiles, realmente fica muito rapido e da pra fazer mizuras heheheh.
Flws
Flws
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
Melhor que print screen é vídeo, assiste aí.Jiraya escreveu:
desculpe, mas eu n consegui encontrar esse bug, o,o.
esse sistema de colisão n é preciso, ou seja, checa colisão por, retangulos, mesmo que tenha um buraco na tile, ele ira colidir como se fosse um retangulo normal.
se puder enviar um print desse bug do qual falou, eu poderia averiguar.
Deu pra entender?
Eu acho que é pelas bordas boleadas.
Shadow10- Games Ranking :
Notas recebidas : C
Data de inscrição : 07/11/2010
Reputação : 19
Número de Mensagens : 429
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
Ah..., mas será que isso é realmente um bug ou algo natural que o código não impede de acontecer?
Última edição por Zignaw em Dom 22 maio 2011, 23:34, editado 1 vez(es)
Machow8- Data de inscrição : 21/05/2011
Reputação : 16
Número de Mensagens : 625
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
Ya, grande observação Shadow , bom aparentemente eu resolvi o bug.
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
Ok, Jiraya, legal, mas vc já atualizou o seu link da sua engine com o bug corrigido?
Última edição por Zignaw em Dom 22 maio 2011, 23:35, editado 1 vez(es)
Machow8- Data de inscrição : 21/05/2011
Reputação : 16
Número de Mensagens : 625
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
É porque ele usou "sprite_width" no código e as esquinas são boleadas,
se de alguma forma ele adicionasse uma mask isso se resolveria.
Assim talvez.
se de alguma forma ele adicionasse uma mask isso se resolveria.
Assim talvez.
- Código:
mask_index = sprite_create_from_screen(x,y,32,32,0,0,0,0);
Shadow10- Games Ranking :
Notas recebidas : C
Data de inscrição : 07/11/2010
Reputação : 19
Número de Mensagens : 429
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
yay, refiz todo o código, agora aparentemente, n existe bugs o,o!
esta melhorado e mais facil de usar agora !
esta melhorado e mais facil de usar agora !
Re: [ATUALIZADO][Engine]Novo metodo de colisão!
Ah! Muito obrigado por essa melhoria, Jiraya! Facilitou ainda mais minha vida!
Cara, quando eu puder, aumento tua reputação, pois já tem 2 na frente!
Cara, quando eu puder, aumento tua reputação, pois já tem 2 na frente!
Machow8- Data de inscrição : 21/05/2011
Reputação : 16
Número de Mensagens : 625
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Página 1 de 2 • 1, 2
Tópicos semelhantes
» Engine de fisica v2(atualizado)
» [ENGINE - SCRIPT] Método de draw_sprite_part
» [atualizado] Meu novo menu
» Engine - Colisão de Plataforma
» [Engine] colisão em jogos 3d
» [ENGINE - SCRIPT] Método de draw_sprite_part
» [atualizado] Meu novo menu
» Engine - Colisão de Plataforma
» [Engine] colisão em jogos 3d
GMBR :: Ensine & Aprenda :: Exemplos :: Game Maker (engines)
Página 1 de 2
Permissões neste sub-fórum
Não podes responder a tópicos