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
Como segurar na borda?
4 participantes
Página 1 de 1
Como segurar na borda?
Fala galera. To com um problema aqui que nã consigo resolver de jeio nenhum.
É que eu quero que o personagem agarre na borda do chão. Para quem não entendeu, uma imagem:
Ele tem que mudar o sprite para o dele segurando ali na borda do chão e ficar com a mão em cima do chao. Uma pequena montagem pra vcs entenderem melhor o que eu quero:
Vlw galera =D
Goodbye
É que eu quero que o personagem agarre na borda do chão. Para quem não entendeu, uma imagem:
Ele tem que mudar o sprite para o dele segurando ali na borda do chão e ficar com a mão em cima do chao. Uma pequena montagem pra vcs entenderem melhor o que eu quero:
Vlw galera =D
Goodbye
Naut2006- Data de inscrição : 11/08/2009
Reputação : 0
Número de Mensagens : 213
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como segurar na borda?
Tava esperando alguem postar, mas como não aconteceu, eu vou ter que dar doublepost mesmo, pra não ter que criar outro tópico. É que surgiu outra dúvida:
Quando eu coloco para um sprite seguir outro (tipo x=objeto.x e y=objeto.y) ele até seugue o outro, mas quando ele faz movimentos muito rápidos (como é para seguir o player, normalmente quando ele pula ou está caindo) o outro objeto vai seguindo ele mas com um atraso, um pouco atras dele. Queria saber como faz para ficar SEMPRE na mesma posição que o player
Vlw, e maus o double-post
Goodbye
Quando eu coloco para um sprite seguir outro (tipo x=objeto.x e y=objeto.y) ele até seugue o outro, mas quando ele faz movimentos muito rápidos (como é para seguir o player, normalmente quando ele pula ou está caindo) o outro objeto vai seguindo ele mas com um atraso, um pouco atras dele. Queria saber como faz para ficar SEMPRE na mesma posição que o player
Vlw, e maus o double-post
Goodbye
Naut2006- Data de inscrição : 11/08/2009
Reputação : 0
Número de Mensagens : 213
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como segurar na borda?
o jeito mais facil para as bordas é colocar um detector, que quando o player bate nele ele entende que está segurando na borda.
Quanto a seguir o objeto, coloque no draw dele:
Caso seu personagem 'suma' é pq o evento de desenha-lo automaticamente do GM foi cancelado por você adicionar o evento draw, entao adicione o codigo ABAIXO desse que falei:
OBS: isso desenha o sprite sem nenhuma mudança como 'image_blend', 'image_angle', 'image_alpha', etc. Que so poderiam ser usadas na versao pro do GM.
Quanto a seguir o objeto, coloque no draw dele:
- Código:
x = objeto.x;
y = objeto.y;
Caso seu personagem 'suma' é pq o evento de desenha-lo automaticamente do GM foi cancelado por você adicionar o evento draw, entao adicione o codigo ABAIXO desse que falei:
- Código:
draw_sprite(sprite_index,image_index,x,y);
OBS: isso desenha o sprite sem nenhuma mudança como 'image_blend', 'image_angle', 'image_alpha', etc. Que so poderiam ser usadas na versao pro do GM.
Janx- Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios :
x 0 x 0 x 0
x 0 x 2 x 0
x 0 x 0 x 0
Re: Como segurar na borda?
O negocio de seguir funciona blz, mas o da borda eu já fiz isso e não funciono, pq o sprite muda mas ele continua caindo, quando ele fica parado não é com a mão em cima ali do chao, entende?
Mas vlw de qualquer jeito =D
Goodbye
Mas vlw de qualquer jeito =D
Goodbye
Naut2006- Data de inscrição : 11/08/2009
Reputação : 0
Número de Mensagens : 213
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como segurar na borda?
Olha cara, o melhor jeito de fazer isso é programando um movimento por estados, mas isso é um pouco complicado. Se quiser, deve ter tutoriais na Net, mas a base é essa:
Create:
Então, no caso, teria uma situação de que se o personagem estivesse caindo, estiver colidindo de LADO com o bloco e o jogador apertar uma tecla que faça isso (Up, por exemplo), muda o estado dele para pendurado:
Então, no movimento, você coloca o seu código (do movimento) dentro dessas chaves:
Esse código acima é para que o personagem não saia andando enquanto está segurando. Depois, é só fazer com que ele possa se despendurar dando um 'salto', por exemplo:
Essa é a base, é só você adaptar o movimento do seu jogo e ir testando até conseguir eliminar todos os bugs. Boa sorte. o/
Falows.
Create:
- Código:
state_tipo=0; //0 no chão, 1 no ar
state=0; //o estado no personagem: um exemplo: 0 parado, 1 andando, 2 atacando, 3 agachado. Se estiver no ar (state_tipo=1), 0 pulando, 1 caindo, 2 atacando no ar, etc.
Então, no caso, teria uma situação de que se o personagem estivesse caindo, estiver colidindo de LADO com o bloco e o jogador apertar uma tecla que faça isso (Up, por exemplo), muda o estado dele para pendurado:
- Código:
state= 5 //Aqui, você coloca um número que você escolhe para quando ele está pendurado, por exemplo, 5
Então, no movimento, você coloca o seu código (do movimento) dentro dessas chaves:
- Código:
if (state!=5) //Se NÃO estiver pendurado
{
//código do movimento
}
Esse código acima é para que o personagem não saia andando enquanto está segurando. Depois, é só fazer com que ele possa se despendurar dando um 'salto', por exemplo:
- Código:
if keyboard_check_pressed(vk_up) && (state==5) //Se apertou tecla Up (seta pra cima) e o jogador está pendurado
{
vspeed=-5; //jogador pula, por exemplo
state=0;
state_tipo=1; //Essas duas linhas iriam trocar o estado dele: state_tipo=1 (no ar, não está no chão) e state=0 (está pulando)
}
Essa é a base, é só você adaptar o movimento do seu jogo e ir testando até conseguir eliminar todos os bugs. Boa sorte. o/
Falows.
Re: Como segurar na borda?
Não funcionou. Gente, é que vcs tao se esquecendo que a mão tem que ficar em cima da borda, e é isso que eu não to conseguindo :/
Mas vlw pela ajuda ate agora
Goodbye
Mas vlw pela ajuda ate agora
Goodbye
Naut2006- Data de inscrição : 11/08/2009
Reputação : 0
Número de Mensagens : 213
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como segurar na borda?
faz para quando ele colidir no detector, mudar a posiçao dele.
PRA QUAL?!?!
Nao sei, testa ai até ficar na posiçao correta.
Lembre-se de desativar a gravidade e zerar a velocidade para ele nao se mover mais enquanto segura na borda!!
PRA QUAL?!?!
Nao sei, testa ai até ficar na posiçao correta.
Lembre-se de desativar a gravidade e zerar a velocidade para ele nao se mover mais enquanto segura na borda!!
Janx- Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios :
x 0 x 0 x 0
x 0 x 2 x 0
x 0 x 0 x 0
Re: Como segurar na borda?
E não se esqueça de reativar isso depois, quando ele largar a borda. Pode parecer algo óbvio e idiota, mas é um erro bobo que as vezes nos rende dores de cabeça. É sério.
Re: Como segurar na borda?
Não sei se é um bug do gm, mas já tentei zerar a gravidade e ele continua caindo. Já tentei usar o vspeed=0 tbm nao funciona. E mudar pra uma certa posição nao adianta, ja que tem mais de uma borda no jog. de qualquer forma, ta aqui o codigo que eu tenho agora:
Mas não funciona :/
Goodbye
- Código:
if collision_rectangle(x+3,y-50,x+13,y-7,obj_chao_canto_esq,true,0)
{x=obj_chao_canto_esq.x
y=obj_chao_canto_esq.y
segurando=true
sprite_index=sprite21}
Mas não funciona :/
Goodbye
Naut2006- Data de inscrição : 11/08/2009
Reputação : 0
Número de Mensagens : 213
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como segurar na borda?
Tentou usar os dois ao mesmo tempo?
Desculpe, não pude avaliar seu código, tenho que sair agora. :\
Boa sorte aí.
Desculpe, não pude avaliar seu código, tenho que sair agora. :\
Boa sorte aí.
Re: Como segurar na borda?
Naut2006 escreveu:Não sei se é um bug do gm, mas já tentei zerar a gravidade e ele continua caindo. Já tentei usar o vspeed=0 tbm nao funciona. E mudar pra uma certa posição nao adianta, ja que tem mais de uma borda no jog. de qualquer forma, ta aqui o codigo que eu tenho agora:
- Código:
if collision_rectangle(x+3,y-50,x+13,y-7,obj_chao_canto_esq,true,0)
{x=obj_chao_canto_esq.x
y=obj_chao_canto_esq.y
segurando=true
sprite_index=sprite21}
Mas não funciona :/
Goodbye
tente o codigo assim:
- Código:
if collision_rectangle(x+3,y-50,x+13,y-7,obj_chao_canto_esq,true,0)
{x=obj_chao_canto_esq.x
y=obj_chao_canto_esq.y
segurando=true
sprite_index=sprite21
vspeed = 0;
gravity = 0;
}
e de uma olhada se nao tem em nenhum lugar que está setando a gravidade para outro valor dinovo!!!!
Se tiver coloque uma comparaçao como:
- Código:
if !segurando
{
....
...
gravity = ??
}
flw
Janx- Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios :
x 0 x 0 x 0
x 0 x 2 x 0
x 0 x 0 x 0
Re: Como segurar na borda?
Não funciona gente :/ Eu já verifiquei a gravidade, ta para ficar zero mesmo. To mandando o arquivo do projeto, para voces terem uma ideia melhor do que ta acontecendo:
Projeto_2.gmk - 0.04MB
São só 40kb. Caso possivel deem uma olhadinha pra ver se não tem nada errado no codigo.
Valeu mesmo pelo esforço que vc tao fazendo
Goodbye
Projeto_2.gmk - 0.04MB
São só 40kb. Caso possivel deem uma olhadinha pra ver se não tem nada errado no codigo.
Valeu mesmo pelo esforço que vc tao fazendo
Goodbye
Naut2006- Data de inscrição : 11/08/2009
Reputação : 0
Número de Mensagens : 213
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como segurar na borda?
Oh sim!
Há muitas coisas erradas.
A começar pela impressão de não ter nada errado.
Você está mandando ele ficar parado na parede não importa o que aconteça.
Mesmo se jogador apertar o botão de pular ele ainda vai estar sendo ordenado o ficar parado nas bordas.
Então uma condição deve ser feita no evento de colisão para quando o jogador querer pular o código da colisão não fazer mais efeito.
Você esta usando variaveis para estado não é?
Então quando o estado for o de pulo, o código que manda ele ficar parado é anulado.
Para endenter melhor um exemplo:
Fique atendo a programação dos outros estados também.
Esse tipo de bug acontece sempre.
Há muitas coisas erradas.
A começar pela impressão de não ter nada errado.
Você está mandando ele ficar parado na parede não importa o que aconteça.
Mesmo se jogador apertar o botão de pular ele ainda vai estar sendo ordenado o ficar parado nas bordas.
Então uma condição deve ser feita no evento de colisão para quando o jogador querer pular o código da colisão não fazer mais efeito.
Você esta usando variaveis para estado não é?
Então quando o estado for o de pulo, o código que manda ele ficar parado é anulado.
Para endenter melhor um exemplo:
- Código:
if pulo = false
{
move_contact_solid(direction,8)
vspeed=0
}
Fique atendo a programação dos outros estados também.
Esse tipo de bug acontece sempre.
Re: Como segurar na borda?
Vlw kabeção. To reformulando o movimento dele aqui, depois eu digo se deu certo =D
Goodbye
Goodbye
Naut2006- Data de inscrição : 11/08/2009
Reputação : 0
Número de Mensagens : 213
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|