Entrar
Últimos assuntos
» Colisões não funcionandopor RastaMaan Hoje à(s) 19:49
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Hoje à(s) 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
» 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
falta algo no meu código?
+2
Sewer Crawler
Edvaldo 007
6 participantes
Página 1 de 1
falta algo no meu código?
Eu estou fazendo um jogo de plataforma, fiz o sistema de andar trocando sprites e tal e fiz a gravidade, mas estou tendo alguns problemas.
Quando ando para os lados, ele anda na plataforma sem problema. Quando encosto na caixa da direita da imagem, o char bate nela e para de andar. Até aí tudo certo.
Porém quando eu vou para a esquerda e caio na plataforma de baixo ele simplesmente passa por dentro e cai para fora da room. Existe algum código adicional pra checagem de colisão com a plataforma?
Códigos do char:
Além disso, aproveito para perguntar como eu posso desacelerar a animação do char. os frames passam muito rápido. Tento usar o Image_speed mas não funciona, em que lugar do código exatamente devo colocar ele?
Quando ando para os lados, ele anda na plataforma sem problema. Quando encosto na caixa da direita da imagem, o char bate nela e para de andar. Até aí tudo certo.
Porém quando eu vou para a esquerda e caio na plataforma de baixo ele simplesmente passa por dentro e cai para fora da room. Existe algum código adicional pra checagem de colisão com a plataforma?
Códigos do char:
- Spoiler:
- No create
- Spoiler:
- Código:
noar=false
andando=false
- Spoiler:
- Código:
//MOVIMENTOS......................................................................
if keyboard_check(vk_right)
{
if place_free(x+4,y)
{x=x+4
sprite_index=spr_dir}
}
if keyboard_check(vk_left)
{
if place_free(x-4,y)
{x=x-4
sprite_index=spr_esq}
}
if keyboard_check_released(vk_right)
{sprite_index=spr_par}
if keyboard_check_released(vk_left)
{sprite_index=spr_par2}
//Pulo............................................................................
if place_free (x,y+1)
{noar=true}
else
{noar=false}
if noar==true {gravity=0.1}
else {gravity=0}
Além disso, aproveito para perguntar como eu posso desacelerar a animação do char. os frames passam muito rápido. Tento usar o Image_speed mas não funciona, em que lugar do código exatamente devo colocar ele?
Última edição por Edvaldo 007 em Qua 10 Dez 2014, 21:33, editado 1 vez(es)
Edvaldo 007- Data de inscrição : 23/08/2011
Reputação : 3
Número de Mensagens : 37
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: falta algo no meu código?
Cola o código que vc tá usando na colisão com a caixa que "vaza".
Ah, e parabéns por postar imagens, no seu pedido de ajuda. "Certas" pessoas daqui, além de postar imagens, deveriam aprender a usar a vírgula corretamente.
Iria poupar um bocado de tempo.
Ah, e parabéns por postar imagens, no seu pedido de ajuda. "Certas" pessoas daqui, além de postar imagens, deveriam aprender a usar a vírgula corretamente.
Iria poupar um bocado de tempo.
Última edição por Sewer Crawler em Qua 10 Dez 2014, 21:16, editado 1 vez(es)
Sewer Crawler- Data de inscrição : 08/10/2014
Reputação : 27
Número de Mensagens : 236
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: falta algo no meu código?
Qual parte do código? A do "pulo''?
E mesmo assim, estou usando apenas dois obj, o obj_player e o obj_plataforma (esse chão é uma caixa esticada), não entendo porque não funciona se eu caio de cima para baixo.
- Código:
if place_free (x,y+1)
{noar=true}
else
{noar=false}
if noar==true {gravity=0.1}
else {gravity=0}
E mesmo assim, estou usando apenas dois obj, o obj_player e o obj_plataforma (esse chão é uma caixa esticada), não entendo porque não funciona se eu caio de cima para baixo.
Edvaldo 007- Data de inscrição : 23/08/2011
Reputação : 3
Número de Mensagens : 37
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: falta algo no meu código?
Mostre o código de colisão do player com o bloco. A image_speed deve ser colocada no create do player.
WellingtonBecker- Games Ranking :
Notas recebidas : D
Data de inscrição : 09/05/2013
Reputação : 105
Número de Mensagens : 824
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: falta algo no meu código?
- Código:
//MOVIMENTOS......................................................................
image_speed=0
if keyboard_check(vk_right)
{
if place_free(x+4,y)
{x=x+4
sprite_index=spr_dir
image_index+=1
}
}
if keyboard_check(vk_left)
{
if place_free(x-4,y)
{x=x-4
sprite_index=spr_esq
image_index+=1
}
}
if keyboard_check_released(vk_right)
{sprite_index=spr_par}
if keyboard_check_released(vk_left)
{sprite_index=spr_par2}
//Pulo............................................................................
if place_free (x,y+1)
{noar=true}
else
{noar=false}
if noar==true {gravity=0.1}
else {gravity=0}
Re: falta algo no meu código?
Eu não uso código algum para a colisão, apenas o place_free (x,y+1).
E Isaque, mesmo usando seu código o Bug ainda acontece.
E Isaque, mesmo usando seu código o Bug ainda acontece.
Última edição por Edvaldo 007 em Qua 10 Dez 2014, 21:30, editado 1 vez(es)
Edvaldo 007- Data de inscrição : 23/08/2011
Reputação : 3
Número de Mensagens : 37
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: falta algo no meu código?
infelizmente não posso baixar. mais tente substituir seu codigo de gravidade por esse:
mais se quiser, tenho um codigo de gravidade tambem. só olhar nos ultimos assuntos gravidade e movimento em rampas
- Código:
if place_free (x,y+1)
{noar=true gravity=0.1}
else
{noar=false gravity=0}
mais se quiser, tenho um codigo de gravidade tambem. só olhar nos ultimos assuntos gravidade e movimento em rampas
Última edição por Isaque Onix em Qua 10 Dez 2014, 21:21, editado 1 vez(es)
Re: falta algo no meu código?
No evento de colisão do player com o bloco
- Código:
move_contact_solid(direction,12) // Impede que o personagem atravesse o chão e as paredes (...)
speed=0 // (...) colocando 0 na velocidade vertical
WellingtonBecker- Games Ranking :
Notas recebidas : D
Data de inscrição : 09/05/2013
Reputação : 105
Número de Mensagens : 824
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: falta algo no meu código?
O Bug ainda acontece, mesmo substituindo o que você disse. Mas valeu por tentar.
Eu dei uma olhada em alguns por aqui, mas eu não queria simplesmente pegar algum já pronto sabe, queria que me dissessem o que está errado no meu, acho que seria melhor pra mim.
Hey, funcionou Wellington, valeu mesmo.
Quanto a velocidade da animação, basta colocar o image_speed no create certo.
Eu dei uma olhada em alguns por aqui, mas eu não queria simplesmente pegar algum já pronto sabe, queria que me dissessem o que está errado no meu, acho que seria melhor pra mim.
Hey, funcionou Wellington, valeu mesmo.
Quanto a velocidade da animação, basta colocar o image_speed no create certo.
Edvaldo 007- Data de inscrição : 23/08/2011
Reputação : 3
Número de Mensagens : 37
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: falta algo no meu código?
Coloque no create image_speed=0.5
De nada, abraços.
De nada, abraços.
WellingtonBecker- Games Ranking :
Notas recebidas : D
Data de inscrição : 09/05/2013
Reputação : 105
Número de Mensagens : 824
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: falta algo no meu código?
Postei todo um texto explicativo, mas parece que não apareceu. que m3rd pena. bom, vou postar então só o essencial.
O código do Wellington parou a gravidade por ele definiu a variavel speed como zero, parando assim a vspeed(velocidade vertical) que estava levando o jogador para baixo.
O ideal é para só a velocidade vertical, para isso, troque o speed=0 por vspeed=0.
O código do Wellington parou a gravidade por ele definiu a variavel speed como zero, parando assim a vspeed(velocidade vertical) que estava levando o jogador para baixo.
O ideal é para só a velocidade vertical, para isso, troque o speed=0 por vspeed=0.
Re: falta algo no meu código?
Campeão, sei que o tópico é um pouco antigo, mas não sei se já foi resolvida a sua dúvida, em todo caso fica aqui para consulta de outros usuários:
Esse é o script mais simples de movimentação em plataforma, basta jogar no step do objeto e ele já interage com qualquer objeto sólido presente na tela. É um script de minha autoria mesmo, deixei ele já comentado.
Lembrando que não tem restrição de pulo no ar, para impedir o "pulo duplo" é só verificar o deslocamento vertical junto do key...pressed(vk_up), assim:
Esse é o script mais simples de movimentação em plataforma, basta jogar no step do objeto e ele já interage com qualquer objeto sólido presente na tela. É um script de minha autoria mesmo, deixei ele já comentado.
- Código:
gravity = 0.3 //atribui gravidade
if !place_free(x,y + vspeed + 1) { //verifica abaixo do objeto
gravity=0 //seta a gravidade para zero
vspeed=0 //interrompe a queda
move_contact_solid(270, vspeed + 1) //move na direção do colisor sólido (para baixo)
}
/* note que o x-3 deve ser igual ao deslocamento do x, no caso 3 */
if keyboard_check(vk_left) { //Pressionar esquerda
if place_free(x-3,y) x-=3
}
if keyboard_check(vk_right) { //Pressionar direita
if place_free(x+3,y) x+=3
}
if keyboard_check_pressed(vk_up) {
vspeed=-8 //dispara verticalmente o jogador (para cima)
}
Lembrando que não tem restrição de pulo no ar, para impedir o "pulo duplo" é só verificar o deslocamento vertical junto do key...pressed(vk_up), assim:
- Código:
if keyboard_check_pressed(vk_up) and vspeed=0
Fuzenrad- Games Ranking :
Notas recebidas : A-A-A-A-B
Data de inscrição : 04/07/2010
Reputação : 46
Número de Mensagens : 1063
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 1
x 0 x 0 x 0
Tópicos semelhantes
» erro no código, ou fiz algo errado?
» {Ajudem meu game ta quase pronto} Tem algo errado no codigo?
» Falta de Apoio
» Zoom que ajuda a posicionar instâncias e tiles na room
» Falta de jogos/concursos
» {Ajudem meu game ta quase pronto} Tem algo errado no codigo?
» Falta de Apoio
» Zoom que ajuda a posicionar instâncias e tiles na room
» Falta de jogos/concursos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|