Personagem preso e colisão com solid

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Personagem preso e colisão com solid

Mensagem por Ripley em Qui 31 Jan 2013, 22:41

Olá pessoal, estou com um problema, meu jogo é "Visto por cima" e tenho o seguinte problema:

Quando o personagem vai se movendo, bem proximo de algo solido ele acaba travando, mas isso so acontece se eu vou andando e girando o player, acho que é por causa dos braços, ja tentei usar mascara mas não adianta :\

Enfim, help, se alguem tiver um code de colisão perfeito para esse tipo de jogo visto por cima favor ajudar Smile

Ripley

Número de Mensagens : 23
Data de inscrição : 09/01/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Personagem preso e colisão com solid

Mensagem por RafaelCazarotto em Qui 31 Jan 2013, 22:55

não precisa codigo naum realmente tem a ver com a mascara de colisão se colide com os braços tenta dar um edit na mascara na parte manual e coloca os numeros como 0 assim não vai colisão, ou tenta fazer uma mascara de colisão do carinha retangular Smile

RafaelCazarotto

Ranking : Nota C
Número de Mensagens : 564
Idade : 19
Data de inscrição : 15/03/2012
Notas recebidas : D-D-D-C-C-B
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: Personagem preso e colisão com solid

Mensagem por GabrielXavier em Qui 31 Jan 2013, 22:58


GabrielXavier

Ranking : Nota A
Número de Mensagens : 359
Data de inscrição : 25/02/2012
Notas recebidas : A
Reputação : 15
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 1

Voltar ao Topo Ir em baixo

Re: Personagem preso e colisão com solid

Mensagem por Ripley em Qui 31 Jan 2013, 23:07

RafaelCazarotto escreveu:não precisa codigo naum realmente tem a ver com a mascara de colisão se colide com os braços tenta dar um edit na mascara na parte manual e coloca os numeros como 0 assim não vai colisão, ou tenta fazer uma mascara de colisão do carinha retangular Smile

Cara eu não sei se estou fazendo algo errado, mas ja tentei usar mascara em tudo, queria algum codigo mesmo para se ele "embocar" ele ser empurrado rapidamente, tanto com player como com inimigo

GabrielXavier escreveu:Da uma olhada nesse topico meu e ve se te ajuda manim:
http://gmbr.forumeiros.com/t23334-duvida-com-colisaosempre-tive-essa-duvida?highlight=sempre

Queria um para usar com inimigos tambem :\
Essa so funcionaria com Player

Ripley

Número de Mensagens : 23
Data de inscrição : 09/01/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Personagem preso e colisão com solid

Mensagem por NPH em Qui 31 Jan 2013, 23:11

Isso é fácil de se corrigir!
Se você estiver usando o image_angle para mudar a direção de um objeto, isso é com certeza muito desaconselhável!
Para resolver esse problema, programe o step na parte de controlar o seu personagem assim:
Código:

friction=0.1;
if (keyboard_check(vk_right)){direction-=4;}
if (keyboard_check(vk_left)){direction+=4;}
if (keyboard_check(vk_up))and(speed<4){speed+=0.3;}
Se você quer um personagem que gire sem prender na parede, use isso no Draw Event dele:
Código:

draw_sprite_ext(sprite_index,image_index,x,y,1,1,direction,-1,1);
note que o direction que está no step, está também nessa função!
Agora, na colisão é só fazer o seguinte:
Código:

x=xprevious;y=yprevious;speed=0;
Aconselho o uso de máscaras.
Para fazer uma, copie o seu sprite e na cópia, clique para editar a imagem.
Apague-a e faça um quadrado em todo o tamanho da imagem, na cor preta.
Apenas uma imagem é necessária. Então no objeto que é controlado por você, use esse sprite que você acabou de criar como MASK e teste!
Espero ter ajudado!
Qualquer Bug, me avisa!
PHProductions®

NPH

Ranking : Nota B
Número de Mensagens : 452
Idade : 22
Data de inscrição : 28/11/2010
Notas recebidas : B
Reputação : 32
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Personagem preso e colisão com solid

Mensagem por Ripley em Qui 31 Jan 2013, 23:23

PHProductions escreveu:Isso é fácil de se corrigir!
Se você estiver usando o image_angle para mudar a direção de um objeto, isso é com certeza muito desaconselhável!


Valeu cara, mas eu preciso tirar o image_angle para usar esses codes?? Não tinha parado pra pensar que poderia ser o image_angle o causador disso.


Última edição por Ripley em Qui 31 Jan 2013, 23:43, editado 1 vez(es)

Ripley

Número de Mensagens : 23
Data de inscrição : 09/01/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Personagem preso e colisão com solid

Mensagem por Lukbebalduke em Qui 31 Jan 2013, 23:40

Na realidade depende da sua mask, se ela for perfeitamente simetrica nao precisa, se for, basta vc usar no draw_sprite_ext o angle como image_angle, assim a mask fica parada e o desenho roda.

OBS: Cuidado com citaçoes gigantes amigo !

Lukbebalduke

Ranking : Nota B
Número de Mensagens : 764
Data de inscrição : 06/07/2011
Notas recebidas : B - B - A - B
Reputação : 30
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 2

Voltar ao Topo Ir em baixo

Re: Personagem preso e colisão com solid

Mensagem por saim em Sex 01 Fev 2013, 13:54

Não, image_angle dá problema de colisão independente da máscara que você usa. Eu já fiz um jogo em que a máscara era um círculo perfeito, com origem no centro, pra poder girar à vontade, mas mesmo assim a personagem ficava travando de tempos em tempos. É que não existe "círculo perfeito". A Mask vai ter pixels que colidem e pixels que não colidem - ou sim ou não. Não tem o degradê ou meio-termo ou cores suavizadas necessárias pra formar um círculo visualmente perfeito.
Girar uma mask com serrilhado vai mudar a posição do serrilhado e pode - vai - acontecer de um pixel ficar por cima da posição de colisão, de vez em quando. Se o serrilhado formar um círculo vai acontecer MENOS, mas ainda vai acontecer.

Realmente a melhor solução é manter o image_angle constante. Aí, você pode usar qualquer engine de colisão em top-down que deve funcionar. Mas a imagem mostrada na tela não precisa estar num ângulo constante não. Você pode usar a função draw_sprite_ext que vai ser a mesma coisa que não usar nada no draw_event. Só que essa função serve pra você definir os argumentos de escala, rotação e alpha.

Quer dizer, ao invés de usar
draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha) ;
(que é exatamente a mesma coisa que não usar um draw_event)
Você usa o seguinte:
draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, outra_variável_que_você_mesmo_controla, image_blend, image_alpha) ;

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Personagem preso e colisão com solid

Mensagem por theguitarmester em Sex 01 Fev 2013, 14:36

draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, outra_variável_que_você_mesmo_controla, image_blend, image_alpha) ;
para usar a mesma da direção do anglulo em que está andando, faça:
create:
Código:

angulo=0

step:
Código:
if speed!=0 angulo=direcition

então se a velocidade não for zero, ele vai muda a variavel angulo para igual a direction, e, se for 0, não fazer isso porque sempre que o speed está zerado, o direction volta a 0.

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: Personagem preso e colisão com solid

Mensagem por Ripley em Sab 02 Fev 2013, 00:47

Valeu caras, me ajudaram aqui de verdade Smile

Ripley

Número de Mensagens : 23
Data de inscrição : 09/01/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Personagem preso e colisão com solid

Mensagem por Conteúdo patrocinado Hoje à(s) 16:02


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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