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
» Servidor de Discord do fórum?
por Super Games Sáb 18 maio 2024, 01:27

» Problemas com a caixa de diálogo, ela é pequena e as letras não cabem dentro
por Rukasu777 Qui 16 maio 2024, 18:10

» Problemas com particulas
por RastaMaan Dom 12 maio 2024, 17:03

» Problema ao entrar por uma porta e voltar por ela
por aminaro Seg 06 maio 2024, 10:08

» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43

» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

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

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

» 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

» 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


Bug com colisão

4 participantes

Ir para baixo

Bug com colisão Empty Bug com colisão

Mensagem por Isquilo_Roedor Sex 06 Mar 2015, 20:32

alguem sabe como consertar esse problema, as vezes quando o inimigo arremesa o meu player pra cima e estou perto de uns blocos acontece isso ... = https://imgur.com/ABk7YXQ

(a inteligencia do inimigo é tipo bater no player e jogar ele pra cima e para trás.)

pra quem nao entendeu quando o player é arremessado ele atravessa outros blocos que estão acima dele, isso não deveria acontecer, isso só acontece quando colide com o inimigo se o jogador pular normalmente não buga

aqui está oque uso para colisões

vsp+=grav;
y+=vsp;
x+=hsp;
pular = keyboard_check_(vk_space) [claro que nao ta certo o cmd mas e so pra explicar]

isso é o que checa a parte das colisões

Código:
//se colidir com o bloco obj_blocos que e parente dos blocos,da colisao
if (place_meeting(x,y+vsp,obj_blocos)){
vsp=0;
grav=0;

// aqui em baixo checa se tem algo em cima e nao deixa saltar
if(place_meeting(x,y-16,obj_blocos)){
pular=false;
grav=0;
vsp=0;
}
else{
pular=true;
}
}
Isquilo_Roedor
Isquilo_Roedor

Games Ranking : Nota D

Notas recebidas : E-E-D
Data de inscrição : 22/03/2012
Reputação : 18
Número de Mensagens : 336
Prêmios : Bug com colisão 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

Bug com colisão Empty Re: Bug com colisão

Mensagem por AxeInLine Sex 06 Mar 2015, 20:38

O problema, Isquilo, vem de vocês usar as variáveis x e y para mudar a posição do player.
Aconselho-te a usar as built-in hspeed e vspeed para mudar a posição.

Claro, pode ser outro fator que está causando isso, mas, tenta mudar apenas para teste (se lembra que tu vai ter que mudar algumas parte dos códigos para não dar problema).
AxeInLine
AxeInLine

Data de inscrição : 23/03/2014
Reputação : 40
Número de Mensagens : 211
Prêmios : Bug com colisão 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

Bug com colisão Empty Re: Bug com colisão

Mensagem por Isquilo_Roedor Sáb 07 Mar 2015, 11:11

Acredito que não seja essa a melhor forma de corrigir o problema já que x+=vsp
vspeed e hspeed já estão presentes de uma forma alternativa, mas obrigado pela resposta, esse problema não deveria ocorrer na verdade, porque quando o player está normal nada disso ocorre, mas quando colide com o inimigo ocorre isso:

Código:
//colisão with zumbi
//zumbi1

//normal
if place_meeting(x+1,y,obj_zumbi1){
horn=true
if image_xscale=1 and global.esquerda_inimigo=true {
motion_add(135,6);alarm[0]=8;
}
}

if place_meeting(x-1,y,obj_zumbi1){
if image_xscale=-1 and global.direita_inimigo=true {
motion_add(45,6);alarm[0]=8;
}
}
//invertido
if place_meeting(x+1,y,obj_zumbi1){
horn=true
if image_xscale=1 and global.direita_inimigo=true {
motion_add(45,6);alarm[0]=8;
}
}

if place_meeting(x-1,y,obj_zumbi1){
if image_xscale=-1 and global.esquerda_inimigo=true {
motion_add(135,6);alarm[0]=8;
}
}

da pra ter uma noção do que acontece, ele deveria colidir com o bloco, mas quando o player está em alta velocidade ele simplesmente ignora colisões, já testei isso com um debug que gera velocidade 35 ao meu player, o problema é que ele não colide perfeitamente quando está em uma velocidade alta, eu queria saber como solucionar isso, tipo realizar uma colisão mais perfeita porque quando o player está em alta velocidade ele ignora as colisões ou seja buga tudo (ja disse isso umas 5 vezes né)
Isquilo_Roedor
Isquilo_Roedor

Games Ranking : Nota D

Notas recebidas : E-E-D
Data de inscrição : 22/03/2012
Reputação : 18
Número de Mensagens : 336
Prêmios : Bug com colisão 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

Bug com colisão Empty Re: Bug com colisão

Mensagem por Wendryos Sáb 07 Mar 2015, 11:23

Olá Isquilo.

Porque tanto código assim?

1 - Você poderia tentar só com os dois primeiros.

2 - Você poderia controlar a velocidade: Ex.: if speed>10 {speed=10};


Isso realmente não era para acontecer, que código você usa na colisão?

Edit///

Código:
//se colidir com o bloco obj_blocos que e parente dos blocos,da colisao
if (place_meeting(x,y+1,obj_blocos)){
vsp=0;
grav=0;
}

if (place_meeting(x,y-1,obj_blocos)){
vsp=0;
}
// aqui em baixo checa se tem algo em cima e nao deixa saltar
if place_free(x,y-16){
pular=false;
grav=0;
vsp=0;
}
else{
pular=true;
}


Dei uma organizada no código para você.
Wendryos
Wendryos

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 21/04/2014
Reputação : 12
Número de Mensagens : 194
Prêmios : Bug com colisão 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 1

Ir para o topo Ir para baixo

Bug com colisão Empty Re: Bug com colisão

Mensagem por Isquilo_Roedor Sáb 07 Mar 2015, 11:51

Cara se eu usar o código da forma que está ai não vai funcionar, e já testei sim, até porque vai contra as minhas variáveis, eu queria solucionar o problema de o player não checar a colisão quando esta em uma hspeed ou vspeed muito alta por exemplo 35 e que não seja aplicada pelo player seja utilizando outro fator.
Isquilo_Roedor
Isquilo_Roedor

Games Ranking : Nota D

Notas recebidas : E-E-D
Data de inscrição : 22/03/2012
Reputação : 18
Número de Mensagens : 336
Prêmios : Bug com colisão 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

Bug com colisão Empty Re: Bug com colisão

Mensagem por Wendryos Sáb 07 Mar 2015, 11:58

Cara você testou pelo menos esse código da colisão?
Wendryos
Wendryos

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 21/04/2014
Reputação : 12
Número de Mensagens : 194
Prêmios : Bug com colisão 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 1

Ir para o topo Ir para baixo

Bug com colisão Empty Re: Bug com colisão

Mensagem por Isquilo_Roedor Sáb 07 Mar 2015, 12:07

Sim testei, mas como disse não funcionou e tentei fazer algumas adaptações, mas o meu código é o que funciona melhor com tudo, mas obrigado, eu não quis ofender com o comentário acima
Isquilo_Roedor
Isquilo_Roedor

Games Ranking : Nota D

Notas recebidas : E-E-D
Data de inscrição : 22/03/2012
Reputação : 18
Número de Mensagens : 336
Prêmios : Bug com colisão 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

Bug com colisão Empty Re: Bug com colisão

Mensagem por Wendryos Sáb 07 Mar 2015, 12:10

Inves de x e y você poderia tentar utilizar o hspeed, pois o x muda de posição "bruscamente".

Ex.:
Código:
hspeed=2 friction=0.8


Edit//
Isquilo usa só
Código:
if place_meeting(x+1,y+0,obj2){
horn=true
if image_xscale=1  {motion_add(135,8) friction=0;alarm[0]=8;};
}
//Esquerda
if place_meeting(x-1,y+0,obj2){
if image_xscale=-1  {motion_add(45,8) friction=0;alarm[0]=8;};
}
if horn=false{speed=0;horn=noone};

E não quatro desses...
Wendryos
Wendryos

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 21/04/2014
Reputação : 12
Número de Mensagens : 194
Prêmios : Bug com colisão 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 1

Ir para o topo Ir para baixo

Bug com colisão Empty Re: Bug com colisão

Mensagem por Isquilo_Roedor Sáb 07 Mar 2015, 18:58

O problema é que é necessário usar 4, por que tem que checar a 4 posições para realizar a ação
ou a velocidade nao funciona corretamene, exemplo:

Player indo pra direita (>)
Player indo pra esquerda (<)
Inimigo indo pra direita ({)
Inimigo indo pra esquerda (})

ai vão as posições pra checar

> }
> {
< {
< }

é por isso os quadro, mas se nao entendeu deixa queto kkkkk é complicado mesmo e eu nao sei explicar rsrsr
o friction incomoda o player ao andar, certamente nao é a melhor escolha também, e como eu disse o negocio de hspeed e x está configurado de forma que não muda as coisas já testei e não ficou melhor, mas obrigado por tentar ajudar
Isquilo_Roedor
Isquilo_Roedor

Games Ranking : Nota D

Notas recebidas : E-E-D
Data de inscrição : 22/03/2012
Reputação : 18
Número de Mensagens : 336
Prêmios : Bug com colisão 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

Bug com colisão Empty Re: Bug com colisão

Mensagem por Wendryos Sáb 07 Mar 2015, 20:58

Olha cara eu fiz uma engine desde aquele tempo, e nunca deu problema eu acho que o problema ta em alguma parte do seu código.

Mas eu precisaria testar, creio que se me envia-se sua engine eu arrumaria em segundos...
Wendryos
Wendryos

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 21/04/2014
Reputação : 12
Número de Mensagens : 194
Prêmios : Bug com colisão 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 1

Ir para o topo Ir para baixo

Bug com colisão Empty Re: Bug com colisão

Mensagem por Zero. Dom 08 Mar 2015, 10:20

O que você pode fazer é checar a distância entra o jogador e o bloco, e se o valor da vspeed ultrapassar essa distância (se o jogador for entrar no bloc), você leva o obj_jogador até o limite do block e define vsp = 0.
Zero.
Zero.

Data de inscrição : 19/08/2010
Reputação : 47
Número de Mensagens : 1300
Prêmios : Bug com colisão Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 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

Bug com colisão Empty Re: Bug com colisão

Mensagem por Isquilo_Roedor Dom 08 Mar 2015, 12:36

O seu jeito de pensar parece ser algo que vai dar certo, mas o problema nisso tudo é que eu não sei como escrever esse seu pensamento em código entende
seria tipo assim

if (distance_to_object(obj_blocos)<=1){
transportar player pro limite dos blocos?
o que faço aqui?
}
Isquilo_Roedor
Isquilo_Roedor

Games Ranking : Nota D

Notas recebidas : E-E-D
Data de inscrição : 22/03/2012
Reputação : 18
Número de Mensagens : 336
Prêmios : Bug com colisão 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

Bug com colisão Empty Re: Bug com colisão

Mensagem por Zero. Dom 08 Mar 2015, 14:40

Distance_to_object não, acho que ficaria melhor um collision_rectangle. Depois vc joga ele até um "point_direction" que você encontrou, onde seria uma "distância segura".
Zero.
Zero.

Data de inscrição : 19/08/2010
Reputação : 47
Número de Mensagens : 1300
Prêmios : Bug com colisão Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 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

Bug com colisão Empty Re: Bug com colisão

Mensagem por Isquilo_Roedor Dom 08 Mar 2015, 17:07

Eu estou entendendo o que você quer dizer, mas eu não consigo fazer este pensamento em forma de code, fica meio confuso ,porque são variáveis que nunca usei apesar do meu jogo ser complexo, será q vc poderia fazer um exemplo pra mim ou engine?
Isquilo_Roedor
Isquilo_Roedor

Games Ranking : Nota D

Notas recebidas : E-E-D
Data de inscrição : 22/03/2012
Reputação : 18
Número de Mensagens : 336
Prêmios : Bug com colisão 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

Bug com colisão Empty Re: Bug com colisão

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