Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
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