A distância pode ser qualquer uma, por exemplo (10,10) também seria válido para 45 graus (caso não seja necessário que o vetor esteja normalizado, onde a distância deve ser sempre um)
Acho que esse artigo explica vetores bem: Link
No caso do problema do tópico, achei a solução aqui: Link
Adaptando para o Game Maker, eu acho que ficaria assim (esse vetor é 3D então precisa de dois ângulos):
Eu também fiz uma adaptação para suportar intensidade na luz. Na função d3d_light_define_direction, ela é medida pela distância do vetor.
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 converter graus para vector (Iluminação do Game Maker)
- Foxy Of Jungle
- Programador
- Reações: 0
- Mensagens: 153
- Localização: Brasil
- Contato:
Como converter graus para vector (Iluminação do Game Maker)
Há uma função no Game Maker Studio:
d3d_light_define_direction(id,vx,vy,vz,colour);
A direção da luz é em vetor, mas preciso saber qual cálculo usar para converter esses graus para valores de vetor (0 - 1) ~edit: (-1 a 1) ,erro meu :P
O jogo é Mobile, por isso estou a usar o sistema built-in de iluminação.
d3d_light_define_direction(id,vx,vy,vz,colour);
A direção da luz é em vetor, mas preciso saber qual cálculo usar para converter esses graus para valores de vetor (0 - 1) ~edit: (-1 a 1) ,erro meu :P
O jogo é Mobile, por isso estou a usar o sistema built-in de iluminação.
Editado pela última vez por Foxy Of Jungle em Sáb Set 29, 2018 7:27 pm, em um total de 2 vezes.
Re: Como converter degraus para vector (Iluminação do Game Maker)
Eu acho que não entendi a pergunta, você disse que um vetor vai de 0 a 1? Oo
Enfim, o game maker possui uma função chamada degtorad e radtodeg
Ela faz a conversão de graus
Eu estou falando dela porque acho que você confundiu radiano com vetor.
Enfim, o game maker possui uma função chamada degtorad e radtodeg
Ela faz a conversão de graus
Eu estou falando dela porque acho que você confundiu radiano com vetor.
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Re: Como converter degraus para vector (Iluminação do Game Maker)
Fui olhar a documentação, esta função é exclusiva para 3D e realmente o game maker diz que só vai de 0 a 1 (o que não é a definição de um vetor).
Ignore meu comentário anterior então '
Ignore meu comentário anterior então '
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Re: Como converter degraus para vector (Iluminação do Game Maker)
Leia a documentação: d3d_light_define_direction
Não é de 0 até 1, e sim de -1 até 1.
Se tu quiser usar valores de 0 a 360, basta fazer isso:
No teste aqui deu certo, porém não sei se isso é correto de se fazer. Qualquer coisa edito.
FLWS!
Não é de 0 até 1, e sim de -1 até 1.
Se tu quiser usar valores de 0 a 360, basta fazer isso:
Código: Selecionar todos
direcao = 180;
minha_direcao_x = -1 + ((direcao mod 360) / 180);
d3d_light_define_direction(1, minha_direcao_x, 0, 0, c_white);
FLWS!
Re: Como converter degraus para vector (Iluminação do Game Maker)
Não é assim que vetores funcionam. A direção de um vetor é representada por um ponto em relação ao ponto de origem (0,0). Por exemplo, (1,0) seria 0 graus (direita), (-1,0) seria 180 graus (esquerda), (0,1) seria 90 graus (baixo) e (1,1) 45 graus.Alex FC escreveu:Leia a documentação: d3d_light_define_direction
Não é de 0 até 1, e sim de -1 até 1.
Se tu quiser usar valores de 0 a 360, basta fazer isso:
No teste aqui deu certo, porém não sei se isso é correto de se fazer. Qualquer coisa edito.Código: Selecionar todos
direcao = 180; minha_direcao_x = -1 + ((direcao mod 360) / 180); d3d_light_define_direction(1, minha_direcao_x, 0, 0, c_white);
FLWS!
A distância pode ser qualquer uma, por exemplo (10,10) também seria válido para 45 graus (caso não seja necessário que o vetor esteja normalizado, onde a distância deve ser sempre um)
Acho que esse artigo explica vetores bem: Link
No caso do problema do tópico, achei a solução aqui: Link
Adaptando para o Game Maker, eu acho que ficaria assim (esse vetor é 3D então precisa de dois ângulos):
Código: Selecionar todos
//coloque seus próprios valores nessas 3 variáveis
var angleX = 180;
var angleY = 90;
var intensity = 1; //insira um valor de 0 à 1
angleX = angleX * 3.14159265 / 180;
angleY = angleX * 3.14159265 / 180;
var sinYaw = sin(angleX);
var cosYaw = cos(angleY);
var sinPitch = sin(angle.x);
var cosPitch = cos(angle.x);
var directionX = cosPitch * cosYaw * intensity;
var directionY = cosPitch * sinYaw * intensity;
var directionZ = -sinPitch * intensity;
d3d_light_define_direction(1, directionX, directionY, directionZ, c_white);
Re: Como converter degraus para vector (Iluminação do Game Maker)
Justamente @Ciro, por isso disse que achava que não era essa a forma correta. Eu estava tentando encontrar um exemplo usando vetores, mas não consegui adaptar nenhum.
Abraços
Abraços
- Foxy Of Jungle
- Programador
- Reações: 0
- Mensagens: 153
- Localização: Brasil
- Contato:
Re: Como converter degraus para vector (Iluminação do Game Maker)
Valeu pela atenção, ei @Alex eu escrevi errado sobre -1 até 1 :P
Obrigado pela ajuda de todos!
Obrigado pela ajuda de todos!
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante