Entrar
Últimos assuntos
» Preciso de ajudapor 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
» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Qui 18 Abr 2024, 18:28
» 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
» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39
[Ajuda] Como fazer parede em jogos de plataforma.
+4
CRP-Max
GuuhRauber
Ritton
RodrigoOak
8 participantes
Página 1 de 2
Página 1 de 2 • 1, 2
[Ajuda] Como fazer parede em jogos de plataforma.
como dito no titulo do topico,eu queria saber como fazer um objeto que tem o objetivo dela de agir como uma parede,por que no meu projeto,eu quero por algo que n faça o personagem agarrar,poderiam me ajudar?
-Grato
-Grato
RodrigoOak- Games Ranking :
Notas recebidas : C+D
Data de inscrição : 09/09/2011
Reputação : 12
Número de Mensagens : 231
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 2
x 0 x 0 x 0
Re: [Ajuda] Como fazer parede em jogos de plataforma.
Ué, cria um obj_parede e no evento de colisão com o player você coloca speed=0. É isso que você quer?
Ritton- Games Ranking :
Notas recebidas : C
Data de inscrição : 07/06/2011
Reputação : 2
Número de Mensagens : 673
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Ajuda] Como fazer parede em jogos de plataforma.
isso vai fazer o personagem n se mover .
Resumindo ele iria agarrar =/
Resumindo ele iria agarrar =/
RodrigoOak- Games Ranking :
Notas recebidas : C+D
Data de inscrição : 09/09/2011
Reputação : 12
Número de Mensagens : 231
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 2
x 0 x 0 x 0
Re: [Ajuda] Como fazer parede em jogos de plataforma.
Na verdade o obj_parede vai ficar parado. Caso fosse:
Estaria errado, pois o player ficaria parado. Se você quer que a parede fique paralisada quando colidir com o player, basta apenas colocar speed=0 no obj_parede.
Até mais!
- Código:
with (other)
{
speed=0
}
Estaria errado, pois o player ficaria parado. Se você quer que a parede fique paralisada quando colidir com o player, basta apenas colocar speed=0 no obj_parede.
Até mais!
Ritton- Games Ranking :
Notas recebidas : C
Data de inscrição : 07/06/2011
Reputação : 2
Número de Mensagens : 673
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Ajuda] Como fazer parede em jogos de plataforma.
ah............
eu acho que n entendeu nao e?
E o seguinte,nos jogos de plataforma,o personagem anda no chao normal ne?
mais quando ele colidi com a parede
isso faz ele ser impedido de se mover para o lado que ele quer ir,mais ele pode voltar.
eu quero isso,que o personagem ao colidir com ele faça que impeça-o de prosseguir
Resumindo:uma parede basica para jogo de plataforma
eu acho que n entendeu nao e?
E o seguinte,nos jogos de plataforma,o personagem anda no chao normal ne?
mais quando ele colidi com a parede
isso faz ele ser impedido de se mover para o lado que ele quer ir,mais ele pode voltar.
eu quero isso,que o personagem ao colidir com ele faça que impeça-o de prosseguir
Resumindo:uma parede basica para jogo de plataforma
RodrigoOak- Games Ranking :
Notas recebidas : C+D
Data de inscrição : 09/09/2011
Reputação : 12
Número de Mensagens : 231
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 2
x 0 x 0 x 0
Re: [Ajuda] Como fazer parede em jogos de plataforma.
Editado por saim: não faça flood. Leia as regras do fórum.
Usuário alertado.
Usuário alertado.
GuuhRauber- Data de inscrição : 12/01/2012
Reputação : 1
Número de Mensagens : 107
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Ajuda] Como fazer parede em jogos de plataforma.
Procure colocar a informação da colisão na tecla que ele usa para andar, ex:
A função: "if" seria o mesmo que dizer "se".
A função: keyboard_check, ver se a tecla foi pressionada.
A função: vk_left, é como o GM reconhece a tecla direcional esquerda, masi teclas no manual.
A função: and, seria como um "e", ex: pula "e" corre...
A função: place_free(), é uma especie de pergunta "tem alguma coisa neste lugar?"
A função: "x" e "y", são coordenadas cartesianas, mais informação no google.
A função: else, é uma resposta "se if não for verdadeiro"
Faça esta função para a direita também, lembrando que se você diminui o "x" ele vai para a esquerda.
- Código:
if keyboard_check(vk_left) and place_free(x-5,y) {aqui o comando para ele andar, seja o speed ou a soma no x}
else {caso seja o speed é só zerar ele, speed=0}
A função: "if" seria o mesmo que dizer "se".
A função: keyboard_check, ver se a tecla foi pressionada.
A função: vk_left, é como o GM reconhece a tecla direcional esquerda, masi teclas no manual.
A função: and, seria como um "e", ex: pula "e" corre...
A função: place_free(), é uma especie de pergunta "tem alguma coisa neste lugar?"
A função: "x" e "y", são coordenadas cartesianas, mais informação no google.
A função: else, é uma resposta "se if não for verdadeiro"
Código traduzido:
Se apertar a tecla para a esquerda e na posição de x-5 e y não tiver nada então ele deve andar para a esquerda.
Se não ele tem que ficar parado.
Faça esta função para a direita também, lembrando que se você diminui o "x" ele vai para a esquerda.
Já respeitando a ideia do fórum, de não dar os códigos completos, note que você terá que pensar um pouco como fazer para ir para a direita, ok?
CRP-Max- Games Ranking :
Notas recebidas : C
Data de inscrição : 28/10/2008
Reputação : 29
Número de Mensagens : 822
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Ajuda] Como fazer parede em jogos de plataforma.
CRP-Max escreveu:Procure colocar a informação da colisão na tecla que ele usa para andar, ex:
- Código:
if keyboard_check(vk_left) and place_free(x-5,y) {aqui o comando para ele andar, seja o speed ou a soma no x}
else {caso seja o speed é só zerar ele, speed=0}
Faça esta função para a direita também, lembrando que se você diminui o "x" ele vai para a esquerda.Já respeitando a ideia do fórum, de não dar os códigos completos, note que você terá que pensar um pouco como fazer para ir para a direita, ok?
bem isso ajudo,mais você resolveu somente 1 dos problemas,bem o que eu queria que acontece,que se meu personagem colidir com a parede quando estiver pulando n aconteça isso entendeu?
por exemplo,meu personagem cai,e ele bate na parede,no momento ele vai agarrar,mais se ele pisar no chao, ele n agarra mais se ele estiver caindo aconteçe isso,podem me ajudar com esse problema?
RodrigoOak- Games Ranking :
Notas recebidas : C+D
Data de inscrição : 09/09/2011
Reputação : 12
Número de Mensagens : 231
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 2
x 0 x 0 x 0
Re: [Ajuda] Como fazer parede em jogos de plataforma.
Se a parede for solida e mais alta que o pulo do personagem este comando já resolve isso também.
CRP-Max- Games Ranking :
Notas recebidas : C
Data de inscrição : 28/10/2008
Reputação : 29
Número de Mensagens : 822
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Ajuda] Como fazer parede em jogos de plataforma.
sim a parede e solida,porem quando o personagem cai,ou quando esta caindo,ele simplesmente gruda na parede,mais ele n gruda na parede quando eu estiver tentando pular a parede(quando eu estiver no chao)
RodrigoOak- Games Ranking :
Notas recebidas : C+D
Data de inscrição : 09/09/2011
Reputação : 12
Número de Mensagens : 231
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 2
x 0 x 0 x 0
Re: [Ajuda] Como fazer parede em jogos de plataforma.
Hmmm... Então na colisão com a parede, faz o seguinte:
- Código:
move_contact_solid(gravity_direction, vspeed)
- "Informação":
- move_contact_solid(direction, maxdist)
direction = A direção do contato
maxdist = O limite de velocidade até o contato
O que essa função faz é ir na determinada direção até achar um objeto sólido, daí o nome (praticamente tudo no GM faz jus ao nome).
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Ajuda] Como fazer parede em jogos de plataforma.
Tem um sprite diferente para quando ele pula?
Se tiver esse é o problema, faça um sprite quadrado do tamanho do seu player e use como mascara, assim mesmo que ele mude de sprite não tem o risco de enroscar.
Se tiver esse é o problema, faça um sprite quadrado do tamanho do seu player e use como mascara, assim mesmo que ele mude de sprite não tem o risco de enroscar.
CRP-Max- Games Ranking :
Notas recebidas : C
Data de inscrição : 28/10/2008
Reputação : 29
Número de Mensagens : 822
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Ajuda] Como fazer parede em jogos de plataforma.
Se a parede for sólida, basta adicionar um evento de colisão que ele já vai parar. No entanto, ele ainda deve se mover, então coloque no evento de colisão:
- Código:
vspeed+=gravity;
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Re: [Ajuda] Como fazer parede em jogos de plataforma.
CRP-Max escreveu:Tem um sprite diferente para quando ele pula?
Se tiver esse é o problema, faça um sprite quadrado do tamanho do seu player e use como mascara, assim mesmo que ele mude de sprite não tem o risco de enroscar.
bem,assim ele n vai agarrar ,mais isso so funcionara se o personagem estiver em contato com o chao,se eu estiver se movendo no pulo,ele agarra.
acho que assim expliquei melhor.
caso nao entenderam o problema pede para eu explicar melhor ok?
RodrigoOak- Games Ranking :
Notas recebidas : C+D
Data de inscrição : 09/09/2011
Reputação : 12
Número de Mensagens : 231
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 2
x 0 x 0 x 0
Re: [Ajuda] Como fazer parede em jogos de plataforma.
Então explique melhor.
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Re: [Ajuda] Como fazer parede em jogos de plataforma.
O problema, me parece claro, é que o personagem está entrando alguns pixels na parede. Isso faz ele agarrar mesmo, é o primeiro bug que muitos de nós conhecemos e que nos acompanha a vida toda.
Você pode usar uma mask constante, como o CRP-Max sugeriu. Pra maioria dos códigos, isso funciona. Porque você não posta que códigos está usando pra movimentação e colisão?
Outra coisa que é bom perguntar é o formato dessas suas paredes. Estou supondo que são quadrados 32x32. É isso mesmo?
Finalmente, você diz "paredes", mas estou com a impressão que é a mesma coisa que "chão", ou seja, que é o mesmo objeto que o piso (normalmente, é). Se não for, isso pode fazer alguma diferença, então tenho que perguntar: é o mesmo objeto que você usa como piso?
Você pode usar uma mask constante, como o CRP-Max sugeriu. Pra maioria dos códigos, isso funciona. Porque você não posta que códigos está usando pra movimentação e colisão?
Outra coisa que é bom perguntar é o formato dessas suas paredes. Estou supondo que são quadrados 32x32. É isso mesmo?
Finalmente, você diz "paredes", mas estou com a impressão que é a mesma coisa que "chão", ou seja, que é o mesmo objeto que o piso (normalmente, é). Se não for, isso pode fazer alguma diferença, então tenho que perguntar: é o mesmo objeto que você usa como piso?
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Ajuda] Como fazer parede em jogos de plataforma.
Pedrø escreveu:Então explique melhor.
acho que essas duas imagens iram dar uma explicada melhor.
viu e esse o problema.
-o que aprendi hoje:
Uma Imagem Vale mais do que mil palavras ,ou não né xD
RodrigoOak- Games Ranking :
Notas recebidas : C+D
Data de inscrição : 09/09/2011
Reputação : 12
Número de Mensagens : 231
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 2
x 0 x 0 x 0
Re: [Ajuda] Como fazer parede em jogos de plataforma.
Quando você vai fazer uma pergunta você tem que espicificar como o seu jogo funciona.
Normalmente em jogos de plataforma eu coloco a movimentação através do x e a gravidade através da vspeed.
Simplesmente no código de colisão:(supondo que a movimentação é 10 pixels por step)
If keyboard_check(vk_right){x-=10}
If keyboard_check(vk_right){x+=10}
isto faria com que ele fosse impedido de se movimentar sem impedir que a gravidade parasse. (lógico que tem 3000000000000 formas de se fazer isto. esta é a que eu prefiro utilizar por ser fácil)
Normalmente em jogos de plataforma eu coloco a movimentação através do x e a gravidade através da vspeed.
Simplesmente no código de colisão:(supondo que a movimentação é 10 pixels por step)
If keyboard_check(vk_right){x-=10}
If keyboard_check(vk_right){x+=10}
isto faria com que ele fosse impedido de se movimentar sem impedir que a gravidade parasse. (lógico que tem 3000000000000 formas de se fazer isto. esta é a que eu prefiro utilizar por ser fácil)
Re: [Ajuda] Como fazer parede em jogos de plataforma.
Ele para no ar, enroscado na parede...
Viu com a minha explicação todos teriam entendido.
Você esta zerando o vspeed ou a gravidade, quando ele entra em contato com esta parede?
Eu aconselho a você fazer pequenas sprites de 32X32 invisíveis e usar como chão e parede, e não usar o sprite do cenário.
Fica mais fácil.
As sprites pretas são o chão e as paredes e as vermelhas são onde o player não pode cair, ou morre.
Viu com a minha explicação todos teriam entendido.
Você esta zerando o vspeed ou a gravidade, quando ele entra em contato com esta parede?
Eu aconselho a você fazer pequenas sprites de 32X32 invisíveis e usar como chão e parede, e não usar o sprite do cenário.
Fica mais fácil.
As sprites pretas são o chão e as paredes e as vermelhas são onde o player não pode cair, ou morre.
CRP-Max- Games Ranking :
Notas recebidas : C
Data de inscrição : 28/10/2008
Reputação : 29
Número de Mensagens : 822
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Ajuda] Como fazer parede em jogos de plataforma.
eu estou usando o vspeed,para isso ,e sobre os objetos que estavam invisiveis,eles estao envolta do as sprites....CRP-Max escreveu:Ele para no ar, enroscado na parede...
Viu com a minha explicação todos teriam entendido.
Você esta zerando o vspeed ou a gravidade, quando ele entra em contato com esta parede?
Eu aconselho a você fazer pequenas sprites de 32X32 invisíveis e usar como chão e parede, e não usar o sprite do cenário.
Fica mais fácil.
As sprites pretas são o chão e as paredes e as vermelhas são onde o player não pode cair, ou morre.
caso ninguem resolva e melhor criar um tuto como fazer paredes,que esta complicado =/
outra coisa:
eu uso para movimentaçao esse codigo:
keyboard_check(vk_left/right) {hspeed = -1/1}
na colisão com a parede/chão (obj_bloco):
if vspeed > 0 and not place_free(x,y + vspeed){//***se a velocidade vertical for maior do que 0 e não tiver o mesmo valor da vel vertical abaixo...
move_contact_solid(direction,vspeed)//mover na direção do bloco, na direcçao e com a vel.vertical
}
vspeed = 0//***velocidade vertical = a 0(esta no chao)
noar = 0// variavel,que faz não permitir que o personagem usem a certa skill no chão.
Agora a gravidade:
gravity = 1 // gravidade igual a 1
gravity_direction = 270 // direção da gravidade igual a 270
so isso que tem aver com a colisão do personagem ao bloco(parede ou chão).
acho que dessa vez eu expliquei melhor =/
RodrigoOak- Games Ranking :
Notas recebidas : C+D
Data de inscrição : 09/09/2011
Reputação : 12
Número de Mensagens : 231
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 2
x 0 x 0 x 0
Página 1 de 2 • 1, 2
Página 1 de 2
Permissões neste sub-fórum
Não podes responder a tópicos