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
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Retorno da GMBR!!!
por vinians Qui 14 Mar 2024, 19:07

» 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


Personagem preso e colisão com solid

+3
GabrielXavier
RafaelCazarotto
Ripley
7 participantes

Ir para baixo

Personagem preso e colisão com solid Empty Personagem preso e colisão com solid

Mensagem por Ripley 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
Ripley

Data de inscrição : 09/01/2013
Reputação : 0
Número de Mensagens : 23
Prêmios : Personagem preso e colisão com solid 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

Personagem preso e colisão com solid Empty Re: Personagem preso e colisão com solid

Mensagem por RafaelCazarotto 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
RafaelCazarotto

Games Ranking : Nota C

Notas recebidas : D-D-D-C-C-B
Data de inscrição : 15/03/2012
Reputação : 13
Número de Mensagens : 564
Prêmios : Personagem preso e colisão com solid Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 1

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

Ir para o topo Ir para baixo

Personagem preso e colisão com solid Empty Re: Personagem preso e colisão com solid

Mensagem por GabrielXavier Qui 31 Jan 2013, 22:58

GabrielXavier
GabrielXavier

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 25/02/2012
Reputação : 40
Número de Mensagens : 399
Prêmios : Personagem preso e colisão com solid Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker Studio 2.0


Ir para o topo Ir para baixo

Personagem preso e colisão com solid Empty Re: Personagem preso e colisão com solid

Mensagem por Ripley 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:
https://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
Ripley

Data de inscrição : 09/01/2013
Reputação : 0
Número de Mensagens : 23
Prêmios : Personagem preso e colisão com solid 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

Personagem preso e colisão com solid Empty Re: Personagem preso e colisão com solid

Mensagem por NPH 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®️ Personagem preso e colisão com solid 127735
NPH
NPH

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 28/11/2010
Reputação : 58
Número de Mensagens : 504
Prêmios : Personagem preso e colisão com solid 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
Plataformas :
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


Ir para o topo Ir para baixo

Personagem preso e colisão com solid Empty Re: Personagem preso e colisão com solid

Mensagem por Ripley 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
Ripley

Data de inscrição : 09/01/2013
Reputação : 0
Número de Mensagens : 23
Prêmios : Personagem preso e colisão com solid 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

Personagem preso e colisão com solid Empty Re: Personagem preso e colisão com solid

Mensagem por Lukbebalduke 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
Lukbebalduke

Games Ranking : Nota B

Notas recebidas : B - B - A - B
Data de inscrição : 06/07/2011
Reputação : 30
Número de Mensagens : 765
Prêmios : Personagem preso e colisão com solid Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 2

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

Ir para o topo Ir para baixo

Personagem preso e colisão com solid Empty Re: Personagem preso e colisão com solid

Mensagem por saim 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
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Personagem preso e colisão com solid Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Personagem preso e colisão com solid Empty Re: Personagem preso e colisão com solid

Mensagem por theguitarmester 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
theguitarmester

Games Ranking : Nota C

Notas recebidas : B + C
Data de inscrição : 28/02/2012
Reputação : 139
Número de Mensagens : 2207
Prêmios : Personagem preso e colisão com solid Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Unity


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

Ir para o topo Ir para baixo

Personagem preso e colisão com solid Empty Re: Personagem preso e colisão com solid

Mensagem por Ripley Sáb 02 Fev 2013, 00:47

Valeu caras, me ajudaram aqui de verdade Smile
Ripley
Ripley

Data de inscrição : 09/01/2013
Reputação : 0
Número de Mensagens : 23
Prêmios : Personagem preso e colisão com solid 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

Personagem preso e colisão com solid Empty Re: Personagem preso e colisão com solid

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


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