Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Como fazer o path se mover junto com o personagem Tópico resolvido

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Koreha
Novato
Novato
Reações: 0
Mensagens: 17

Como fazer o path se mover junto com o personagem

Mensagem por Koreha » Sáb Jan 14, 2017 2:39 am

       Estou trabalhando em um jogo de plataforma em que o ataque do protagonista é invocar uma espada que se move em um arco. Esse arco é um path utilizado no evento Create da espada. 
       O problema é que a espada fica defasada em relação ao movimento do jogador, ou seja, o path fica no mesmo lugar enquanto o player se mexe. Gostaria que saber como fazer o path se mover junto do personagem.

Avatar do usuário
Mateus
Novato
Novato
Reações: 0
Mensagens: 6

Re: Como fazer o path se mover junto com o personagem

Mensagem por Mateus » Sáb Jan 14, 2017 8:27 am

Bom dia caro colega,
Imagino que essa espada criada seja um objeto, não?
Por que não faz com que o ponto de origem dessa espada não tenha o diâmetro do arco que você quer e então faça ela um parente do player e gire ela no ângulo desejado.
Acho que dessa forma você vai conseguir o efeito desejado caso não seja possível mover o path.
Bom, vamos aguardar novas dicas.
Espero ter conseguido ajudar.

Avatar do usuário
Koreha
Novato
Novato
Reações: 0
Mensagens: 17

Re: Como fazer o path se mover junto com o personagem

Mensagem por Koreha » Sáb Jan 14, 2017 10:58 am

Mateus escreveu:Bom dia caro colega,
Imagino que essa espada criada seja um objeto, não?
Por que não faz com que o ponto de origem dessa espada não tenha o diâmetro do arco que você quer e então faça ela um parente do player e gire ela no ângulo desejado.
Acho que dessa forma você vai conseguir o efeito desejado caso não seja possível mover o path.
Bom, vamos aguardar novas dicas.
Espero ter conseguido ajudar.
Agradeço pela ajuda. Mas acho que isso não é possível.
A espada não só gira como se move também. Ela realiza os dois movimentos : muda-se seu image_angle a cada step, enquanto ela segue a trajetória de arco do path.

Avatar do usuário
Koreha
Novato
Novato
Reações: 0
Mensagens: 17

Re: Como fazer o path se mover junto com o personagem

Mensagem por Koreha » Sáb Jan 14, 2017 11:11 am

Segue GIF mostrando o que ocorre: quando o jogador anda ele fica na frente da espada.
Imagem

EDIT: GIF com melhor qualidade.

Avatar do usuário
Dust
Membro
Membro
Reações: 0
Mensagens: 109
Localização: Santa Catarina

Re: Como fazer o path se mover junto com o personagem

Mensagem por Dust » Sáb Jan 14, 2017 12:17 pm

Você pode definir a posição da espada no step com um x=player.x+valor_x, assim a espada sempre ficara de frente ao objeto.
Porém, creio que o movimento do patch que possa estar dando esse efeito, talvez lá no patch você esteja tacando a espada pra frente e logo depois pra tras, como um arco, ai possa estar dando essa impressão. O caminho de um Patch sempre vai estar acima de um outro movimento, a execuçao dele é obrigatória, eu acho kkk.
Flw!

Avatar do usuário
Koreha
Novato
Novato
Reações: 0
Mensagens: 17

Re: Como fazer o path se mover junto com o personagem

Mensagem por Koreha » Sáb Jan 14, 2017 12:29 pm

Dust escreveu:Você pode definir a posição da espada no step com um x=player.x+valor_x, assim a espada sempre ficara de frente ao objeto.
Porém, creio que o movimento do patch que possa estar dando esse efeito, talvez lá no patch você esteja tacando a espada pra frente e logo depois pra tras, como um arco, ai possa estar dando essa impressão. O caminho de um Patch sempre vai estar acima de um outro movimento, a execuçao dele é obrigatória, eu acho kkk.
Flw!
Está tudo certinho com o path. O problema é que ele fica parado enquanto o personagem se mexe, por isso que o player fica em cima da espada.

Avatar do usuário
Dust
Membro
Membro
Reações: 0
Mensagens: 109
Localização: Santa Catarina

Re: Como fazer o path se mover junto com o personagem

Mensagem por Dust » Sáb Jan 14, 2017 12:44 pm

Bem... Então acontence que o path é o único movimento que pode ser executado, o path irá bloquear qualquer outro movimento que esteja sendo executado no step.
Crie o movimento da espada sem um path, crie um caminho que a espada iria percorrer por step.
Assim ela sempre vai poder estar a frente do player e seguindo ele sem problemas.
Eu fico escrevendo patch sem quere kk

Avatar do usuário
Koreha
Novato
Novato
Reações: 0
Mensagens: 17

Re: Como fazer o path se mover junto com o personagem

Mensagem por Koreha » Sáb Jan 14, 2017 12:55 pm

Dust escreveu:Bem... Então acontence que o path é o único movimento que pode ser executado, o path irá bloquear qualquer outro movimento que esteja sendo executado no step.
Crie o movimento da espada sem um path, crie um caminho que a espada iria percorrer por step.
Assim ela sempre vai poder estar a frente do player e seguindo ele sem problemas.
Eu fico escrevendo patch sem quere kk
E como eu poderia fazer isso? Ela faz um movimento em arco, acho que o único jeito seria usando equações da circunferência mas não faço ideia de como usar.

Avatar do usuário
saim
Membro
Membro
Reações: 0
Mensagens: 20
Localização: BH - Minas

Re: Como fazer o path se mover junto com o personagem  Tópico resolvido

Mensagem por saim » Ter Jan 17, 2017 12:12 pm

Como o path é simples, a solução de definir os pontos e variáveis da imagem (image_angle) a cada step é simples, tembém. Se você tem um centro, uma distância e um ângulo, o assunto está encerrado

Código: Selecionar todos

cx = ? // coordenada "x" do centro (provavelmente, as coordenadas do personagem)
cy = ? // coordenada "y" do centro
ang = ? // ângulo da espada
dist = ? // distância do personagem à espada

x = cx + lengthdir_x(dist, ang);
y = cy + lengthdir_y(dist, ang);

image_angle = ang;
Você pode escolher quais variáveis dependem da posição do personagem, sendo que cx e cy certamente dependerão.
Agora, paths mais complexos também podem usar equações. Uma vez, eu fiz umas orbes que circulavam ao redor do personagem, com a depth variando em função dela estar indo ou voltando. Dá muito trabalho e requer uma boa dose de conhecimentos matemáticos, mas o resultado costuma valer a pena.

Avatar do usuário
Koreha
Novato
Novato
Reações: 0
Mensagens: 17

Re: Como fazer o path se mover junto com o personagem

Mensagem por Koreha » Ter Jan 17, 2017 1:46 pm

saim escreveu:Como o path é simples, a solução de definir os pontos e variáveis da imagem (image_angle) a cada step é simples, tembém. Se você tem um centro, uma distância e um ângulo, o assunto está encerrado

Código: Selecionar todos

cx = ? // coordenada "x" do centro (provavelmente, as coordenadas do personagem)
cy = ? // coordenada "y" do centro
ang = ? // ângulo da espada
dist = ? // distância do personagem à espada

x = cx + lengthdir_x(dist, ang);
y = cy + lengthdir_y(dist, ang);

image_angle = ang;
Você pode escolher quais variáveis dependem da posição do personagem, sendo que cx e cy certamente dependerão.
Agora, paths mais complexos também podem usar equações. Uma vez, eu fiz umas orbes que circulavam ao redor do personagem, com a depth variando em função dela estar indo ou voltando. Dá muito trabalho e requer uma boa dose de conhecimentos matemáticos, mas o resultado costuma valer a pena.
Não entendi completamente o código, mas agradeço encarecidamente por me apresentar as funções lengthdir_x e  lengthdir_y. Acho que elas me ajudarão, e muito, no que procuro implementar.

Avatar do usuário
saim
Membro
Membro
Reações: 0
Mensagens: 20
Localização: BH - Minas

Re: Como fazer o path se mover junto com o personagem

Mensagem por saim » Ter Jan 17, 2017 2:30 pm

Elas funcionam como seno e cosseno, já multiplicados pela distância e funcionando com graus, ao invés de radianos. Seria fácil criar um script que fizesse a mesma coisa, mas elas já estão aí, built-in, funcionando lindamente.
Tatue essas duas no antebraço, você ainda vai usar elas como se fossem oxigênio.

O código só pega as variáveis de entrada (centro, ângulo e distância) e usa pra achar uma posição. Como eu vi, no gif, que o image_angle também era importante, incluí ele. O importante, mesmo, são os valores de entrada, o centro (o ombro da personagem), a distância (seria o tamanho do braço, se houvesse um braço) e o ângulo, que varia de 90 a -45 (ou seja, percorre um caminho de 135 graus) em uns 3 a 4 steps, portanto, digamos,

Código: Selecionar todos

ang = 90 - (135/4)*t
onde "t" é o tempo de vida da espada

Avatar do usuário
Koreha
Novato
Novato
Reações: 0
Mensagens: 17

Re: Como fazer o path se mover junto com o personagem

Mensagem por Koreha » Ter Jan 17, 2017 4:25 pm

saim escreveu:Elas funcionam como seno e cosseno, já multiplicados pela distância e funcionando com graus, ao invés de radianos. Seria fácil criar um script que fizesse a mesma coisa, mas elas já estão aí, built-in, funcionando lindamente.
Tatue essas duas no antebraço, você ainda vai usar elas como se fossem oxigênio.

O código só pega as variáveis de entrada (centro, ângulo e distância) e usa pra achar uma posição. Como eu vi, no gif, que o image_angle também era importante, incluí ele. O importante, mesmo, são os valores de entrada, o centro (o ombro da personagem), a distância (seria o tamanho do braço, se houvesse um braço) e o ângulo, que varia de 90 a -45 (ou seja, percorre um caminho de 135 graus) em uns 3 a 4 steps, portanto, digamos,

Código: Selecionar todos

ang = 90 - (135/4)*t
onde "t" é o tempo de vida da espada
Já consegui terminar, amei essa função, obrigado.

Trancado

Quem está online

Usuários navegando neste fórum: Bing [Bot] e 4 visitantes