Página 1 de 1
Posicionar arma no player e movimentar de forma correta
Enviado: Sex Set 16, 2016 10:23 pm
por marquinhossm
Boa noite pessoal.
Eu fiz uma arma e posicionei ela no player numa boa, o projeto é um game topDown, entretanto, ao movimentar o mouse, pois o player olha na direção do mouse, a arma se movimenta da mesma forma, entretanto ela não fica exatamente onde eu gostaria, fiz um export para html5 para você poderem entender melhor o que estou falando, e se possível, facilitar a ajuda para o meu problema.
Abaixo segue o link do game.
http://inetdev.atspace.eu/index.html
Re: Posicionar arma no player e movimentar de forma correta
Enviado: Sex Set 16, 2016 10:39 pm
por Led
No step da arma:
Código: Selecionar todos
var dist = 20; //Distância da origem da arma até a origem do player;
var img_angle = obj_player.image_angle; //Definimos a variável img_angle como o ângulo da sprite do player;
x = obj_player.x + lengthdir_x(dist,img_angle);
y = obj_player.y + lengthdir_y(dist,img_angle);
image_angle = img_angle; //Definimos o ângulo da sprite da arma como igual a do Player;
As funções
lengthdir_x e
lengthdir_y retornam, respectivamente, os componentes X e Y de um vetor definido por um módulo e uma direção.
Caso queira se aprofundar um pouco mais no assunto:
Docs - Yoyogames - lengthdir_x
Docs - Yoyogames - lengthdir_y
[Tutorial] lengthdir_x e lengthdir_y por Saim
OBS.: Pelo menos aqui, o link para o jogo não funcionou.
Re: Posicionar arma no player e movimentar de forma correta
Enviado: Sáb Set 17, 2016 9:33 am
por marquinhossm
Bom dia Led.
Muito boa a sua explicação, e também o Tutorial do link abaixo do seu tópico, entretanto eu fiquei um pouco perdido com relação as funções lengthdir_x e lengthdir_y mas vou estudar melhor para compreendê-la.
Funcionou perfeitamente o exemplo de código que você me passou, e a arma ficou bem no meio do Player, mas se eu quiser dar a impressão de que ele está segurando a arma na mão direita, ou seja, ao lado direito do Player, o que eu deveria modificar no código para que essa necessidade fosse atendida ??
Abraço!
Re: Posicionar arma no player e movimentar de forma correta
Enviado: Dom Set 18, 2016 12:05 am
por Led
Bom, no caso, vamos ter que fazer de uma forma um pouco diferente.
Pra começar, abra a sprite do player. Vamos pegar os valores de onde a arma ficará, relativos ao ponto de origem do player:
Imagem Tosca ilustrando o que eu quero dizer
Vamos mudar o nosso código para isso:
Código: Selecionar todos
///Create
offX = 25;
offY = -60;
//Pegamos os valores de módulo e direção do vetor formado de 0,0 até as coordenadas da arma relativas ao centro do player;
offDist = point_distance(0,0,offX,offY);
offAngle = point_direction(0,0,offX,offY);
///Step
var img_angle = obj_player.image_angle + offAngle; //Definimos a variável img_angle como o ângulo da sprite do player mais o ângulo formado entre a origem do player e da arma;
x = obj_player.x + lengthdir_x(offDist,img_angle);
y = obj_player.y + lengthdir_y(offDist,img_angle);
image_angle = obj_player.image_angle; //Definimos o ângulo da sprite da arma como igual a do Player;
[/left]
Bom, é isso, espero ter ajudado. Não cheguei a testar o código, então é possível que surja algum imprevisto.
Até mais o/
Re: Posicionar arma no player e movimentar de forma correta
Enviado: Dom Mai 10, 2020 1:23 pm
por Goiaba
eu diz esse código, porém não deu o resultado certo, quando o mouse fica em cima do plyer, simplesmente criam 2 armas, uma é só a ilusão e a outra é real, tem como resolver isso?
Re: Posicionar arma no player e movimentar de forma correta
Enviado: Ter Mai 12, 2020 3:26 pm
por junior.rod2
Amigo, esse tópico já possui cerca de 2 anos e pelo que notei os autores das respostas não estão mais no fórum. Por favor crie um novo tópico na seção de duvidas explicando seu problema, de preferencia cola o código exato que você usou.
Para evitar ficar revivendo esse tópico onde talvez ninguém vá visualizar sua duvida aqui, vou trancar este tópico, mas por favor fique a vontade para postar sua duvida num tópico dedicado a ela ok?