O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Ajuda com colisoes

Iniciado por Speed, 21/01/2016 às 14:43

21/01/2016 às 14:43 Última edição: 23/10/2017 às 18:23 por Corvo
 Eu estou desenvolvendo um jogo de plataforma e estou usando o Arc Engine mais um script de colisões do Fogomax.
Eu estava fazendo os inimigos seguindo o tutorial da May: http://centrorpg.com/index.php?topic=12164.msg94234#msg94234
O inimigo estava funcionando quando eu pulo nele/ quando encosto nele na direita, mas quando eu encosto na esquerda o evento faz o comando da esquerda e o de quando pulo no inimigo.
Se alguem souber como me ajudar eu ficaria muito grato !!!

Vou dar uma de stackoverflow aqui:
Pode mostrar como tá configurado o objeto do inimigo?
Our work is never over

21/01/2016 às 17:28 #2 Última edição: 23/10/2017 às 18:23 por Corvo
 Claro !!
Spoiler
[close]

Opacidade = deixa o herói "semi-invisivel" e invulnerável
HUD = é a variável que controla a HUD



Eu consegui achar onde estava o erro. Na linha 214 do script Arc Engine é onde se ajusta a largura padrão do personagem, o meu estava 16, mudei para 30 e funcionou.  :XD:

21/01/2016 às 22:11 #3 Última edição: 21/01/2016 às 22:13 por DarkHyudrA
Então, eu dei uma investigada e bem só posso te dar más notícias...

Infelizmente o sistema de colisão é meio ruim.
O que acontece é que ele não é preventivo, ele age na hora que a colisão ocorreu. Imagina que você ficasse dizendo pro jogador "se colidir, para". Se tu sair correndo contra uma parede, você obviamente ia acabar parando dentro dela porque você se move bem mais rápido que 1 pixel por frame. Acontece exatamente isso quando você vai de encontro ao um objeto, você vai acabar detectando a colisão tarde e vai parar dentro dele, e aí a colisão de "cima" e/ou "baixo" vão ativar.

E a detecção de colisão... bem... ela parecia péssima. Eu coloquei que a largura do meu objeto fosse 100, e que a detecção de colisão pela direita e esquerda fosse 100, e ainda assim ele só tava detectando a colisão quando encostasse nele, como se fosse uma colisão padrão do RPG Maker.

Foi aí então que eu me toquei que "derp, se o código do evento só vai rodar 'Ao Tocar Jogador', óbvio que não vai funcionar". Precisa passar ele pra Processo Paralelo. E pra resolver o problema de entrar no objeto caso o jogador e o objeto sejam rápidos, adicione 5 na largura e 5 na quantidade do colisao das colisões laterais. Pelo menos funcionou comigo. E claro, se tu for fazer algum boss que seja enorme, vai ter que passar pra processo paralelo também.

Foi o pau da goiaba achar o script do Fogomax já que a MRM tá off, mas espero que meus testes te ajudem!

---------
Sobre mudar a largura do personagem, é que ele de lado tem realmente em torno de 16 pixels. Se aumentar isso vai ficar sobrando espaço entre você a parede, porque seu gráfico é pequeno mas a máscara de colisão não. Único efeito colateral mesmo.
Our work is never over

 Dark, o único efeito colateral que causou foi eu ter que editar a largura dos eventos logo que essa alteração na largura do personagem só é valida para eventos.

Citação de: Speed online 21/01/2016 às 23:24
Dark, o único efeito colateral que causou foi eu ter que editar a largura dos eventos logo que essa alteração na largura do personagem só é valida para eventos.

Na verdade afeta todas as colisões sim, a questão é que de 16 pra 32 a diferença é muito pequena pra você enxergar. Se colocar 50 por exemplo você já começa a ver que fica um vão entre você e a parede.

Mas enfim, espero que consiga utilizar o script sem problemas agora, boa sorte com o projeto!
Our work is never over