GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Hoje à(s) 16:45

» Preciso de ajuda
por 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

» 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


[Tuto p/ Iniciante] Usando Direction no Game Maker

+3
Thyago
fredcobain
dharrison
7 participantes

Ir para baixo

[Tuto p/ Iniciante] Usando Direction no Game Maker Empty [Tuto p/ Iniciante] Usando Direction no Game Maker

Mensagem por dharrison Sáb 19 Abr 2014, 22:01

Título: Usando Directions no Game Maker
Versão do GM: Qualquer
Dificuldade: Fácil
Link para download da Engine: Não tem engine, mas tem uma demonstração prática que pode ser usada como consulta.
Requer Extensões: Não.
Requer DLLs: Não.
Tags: direction, mover, direções, gml.

Eai galera tudo blz?
Venho trazer hoje um tutorial super básico, mas que eu criei pois senti dúvidas na hora de utilizar a variável direction.

Existem diversas variáveis e funções que dependem da variável direction no Game Maker, que é a variável que aponta a direção em graus na qual um objeto se movimenta.

Tudo é basicamente um conceito, então sejamos práticos. Abaixo você poderá visualizar algumas imagens que indicam as direções.
[Tuto p/ Iniciante] Usando Direction no Game Maker 30aewle
(censurei a bunda feia do personagem Razz)

Os números informados na imagem acima são as direções em graus da forma que o GM utiliza. Ou seja, começando pela Direita 0° e seguindo em sentido anti-horário até chegar em (quase) Direita 359°.

360° não existe pois 360° e 0° são a mesma coisa.

Um exemplo de como usar essa variável é definir o movimento do char da seguinte forma:
Dentro do Event KEYBOARD RIGHT:
Código:
//Direita
{direction=0;speed=4}

Dentro do Event KEYBOARD UP:
Código:
//Cima
{direction=90;speed=4}

Dentro do Event KEYBOARD LEFT:
Código:
//Esquerda
{direction=180;speed=4}

Dentro do Event KEYBOARD DOWN:
Código:
//Baixo
{direction=270;speed=4}

O bom de ser usar direction é que a movimentação não fica limitada a 4 ou 8 direções.


Bom pessoal acho que é isso, um tuto bem breve explicativo sobre direction para você não se confundir como eu.
A demonstração pode ser usar usada para consultar uma das 8 direções mais usadas, assim como esse tópico.

Grande Abraço a todos


Última edição por dharrison em Sáb 19 Abr 2014, 23:11, editado 1 vez(es)
dharrison
dharrison

Games Ranking : Nota B

Notas recebidas : A - B
Data de inscrição : 04/02/2009
Reputação : 120
Número de Mensagens : 1363
Prêmios : [Tuto p/ Iniciante] Usando Direction no Game Maker Empty

Medalhas x 0 Tutoriais x 9 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 2.0
  • C#


Ir para o topo Ir para baixo

[Tuto p/ Iniciante] Usando Direction no Game Maker Empty Re: [Tuto p/ Iniciante] Usando Direction no Game Maker

Mensagem por fredcobain Sáb 19 Abr 2014, 22:22

Simples, bem escrito e efetivo.
Direto ao ponto.
Aprovadíssimo.

Parabéns e obrigado por contribuir.
=)
fredcobain
fredcobain

Games Ranking : Sem avaliações

Data de inscrição : 14/04/2011
Reputação : 163
Número de Mensagens : 692
Prêmios : [Tuto p/ Iniciante] Usando Direction no Game Maker Empty

Medalhas x 0 Tutoriais x 3 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tuto p/ Iniciante] Usando Direction no Game Maker Empty Re: [Tuto p/ Iniciante] Usando Direction no Game Maker

Mensagem por Thyago Sáb 19 Abr 2014, 22:30

.Bom para iniciantes,apesar de preferir colocar tudo em step,o engraçado é a tarja preta no desenho kkkkkk.
 .Mas você fez um exemplo no desenho com 8 e apenas 4 nos código.
Thyago
Thyago

Games Ranking : Nota B

Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Reputação : 31
Número de Mensagens : 1101
Prêmios : [Tuto p/ Iniciante] Usando Direction no Game Maker Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tuto p/ Iniciante] Usando Direction no Game Maker Empty Re: [Tuto p/ Iniciante] Usando Direction no Game Maker

Mensagem por Gabreel Sáb 19 Abr 2014, 23:03

Só duas coisa Haris, dá pra trocar os speed por:
Código:

x += cos(direction*pi/180) * 4;
y -= sin(direction*pi/180) * 4;

Aí você terá uma flexibilidade gigante sobre o código e colisões!

E você em vez de direction colocou diretion!
Gabreel
Gabreel

Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios : [Tuto p/ Iniciante] Usando Direction no Game Maker Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • Outros


Ir para o topo Ir para baixo

[Tuto p/ Iniciante] Usando Direction no Game Maker Empty Re: [Tuto p/ Iniciante] Usando Direction no Game Maker

Mensagem por dharrison Sáb 19 Abr 2014, 23:12

Gabreel escreveu:Só duas coisa Haris, dá pra trocar os speed por:
Código:

x += cos(direction*pi/180) * 4;
y -= sin(direction*pi/180) * 4;

Aí você terá uma flexibilidade gigante sobre o código e colisões!

E você em vez de direction colocou diretion!

Vlw Gabreel, corrigi o erro Happy
Mas explica melhor como funciona isso ae, fasfavortio sorrindo
dharrison
dharrison

Games Ranking : Nota B

Notas recebidas : A - B
Data de inscrição : 04/02/2009
Reputação : 120
Número de Mensagens : 1363
Prêmios : [Tuto p/ Iniciante] Usando Direction no Game Maker Empty

Medalhas x 0 Tutoriais x 9 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 2.0
  • C#


Ir para o topo Ir para baixo

[Tuto p/ Iniciante] Usando Direction no Game Maker Empty Re: [Tuto p/ Iniciante] Usando Direction no Game Maker

Mensagem por Thyago Sáb 19 Abr 2014, 23:13

Gabreel escreveu:Só duas coisa Haris, dá pra trocar os speed por:
Código:

x += cos(direction*pi/180) * 4;
y -= sin(direction*pi/180) * 4;

Aí você terá uma flexibilidade gigante sobre o código e colisões!

E você em vez de direction colocou diretion!
  .Nesse caso o 4 representa a velocidade,como é para iniciantes talves usar cos e sin seja um pouco mais complicado e acho pior para checar a velocidade.

Código:
x += cos(direction*pi/180) *4    =    x+=lengthdir_x(4,direction)
Thyago
Thyago

Games Ranking : Nota B

Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Reputação : 31
Número de Mensagens : 1101
Prêmios : [Tuto p/ Iniciante] Usando Direction no Game Maker Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tuto p/ Iniciante] Usando Direction no Game Maker Empty Re: [Tuto p/ Iniciante] Usando Direction no Game Maker

Mensagem por Gabreel Sáb 19 Abr 2014, 23:19

Acho que trigonometria é meio que obrigatoriedade na nossa área, e não algo de iniciante de usuários avançados, de qualquer forma, sua dica também é boa.
Gabreel
Gabreel

Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios : [Tuto p/ Iniciante] Usando Direction no Game Maker Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • Outros


Ir para o topo Ir para baixo

[Tuto p/ Iniciante] Usando Direction no Game Maker Empty Re: [Tuto p/ Iniciante] Usando Direction no Game Maker

Mensagem por Thyago Sáb 19 Abr 2014, 23:26

.O engraça é que quando  comecei no game maker e conhecia poucas funções criava tudo na matematica.

point_distance,lengthdir entre outros não usava nada disso
Thyago
Thyago

Games Ranking : Nota B

Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Reputação : 31
Número de Mensagens : 1101
Prêmios : [Tuto p/ Iniciante] Usando Direction no Game Maker Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tuto p/ Iniciante] Usando Direction no Game Maker Empty Re: [Tuto p/ Iniciante] Usando Direction no Game Maker

Mensagem por Gabreel Dom 20 Abr 2014, 00:02

dharrison escreveu:
Gabreel escreveu:Só duas coisa Haris, dá pra trocar os speed por:
Código:

x += cos(direction*pi/180) * 4;
y -= sin(direction*pi/180) * 4;

Aí você terá uma flexibilidade gigante sobre o código e colisões!

E você em vez de direction colocou diretion!

Vlw Gabreel, corrigi o erro Happy
Mas explica melhor como funciona isso ae, fasfavortio sorrindo
Não tinha visto, hehehe
Basicamente, em x, você tem um período entre pi (quando a direção é 180) até pi/180 (quando a direção é 0), que correspondem um período de -1 até (quanto mais casas decimais em pi, mais próximo de) 1 quando (e uma parábola pra cima entre eles) dentro de cos. 

E em y, você tem o mesmo período entre pi e pi/180 e um período de 0 à (quanto mais casas decimais em pi, mais próximo de) 0 (com uma parábola para cima entre eles). 

E obviamente cos e sen estão diretamente conectados. Vou dar dois exemplos bem básicos:
Quando a direção é 0 (vai horizontalmente pra frente), o cos(pi/180)*4 = 4 e sen(pi/180)*4 = 0.
Quando a direção é 45 (ele vai para a diagonal para cima e para frente, conforme o teu esquema), então, sen(45*pi/180)*4 = cos(45*pi/180)*4 =~ 2,82. Se você fazer a mesma coisa com speed, vai confirmar.
Gabreel
Gabreel

Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios : [Tuto p/ Iniciante] Usando Direction no Game Maker Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • Outros


Ir para o topo Ir para baixo

[Tuto p/ Iniciante] Usando Direction no Game Maker Empty Re: [Tuto p/ Iniciante] Usando Direction no Game Maker

Mensagem por theguitarmester Dom 20 Abr 2014, 12:37

Achei o tutorial bem pequeno, porém cumpre o prometido e é explicado, não falhando em, seu objetivo.


Mas uma coisa que tenho curiosidade sobre direction(direção, vetor):
Como se calcula a direção de 2 pontos, isto é, qual é o algorítmico por trás desta função:
point_direction(x1, y1, x2, y2)

Eu sei que a distância entre dois pontos é:
Raiz Quadrada de (x1-x2)² + (y1-y2)²


Mas já procurei e procurei mas não achei o da direção.
theguitarmester
theguitarmester

Games Ranking : Nota C

Notas recebidas : B + C
Data de inscrição : 28/02/2012
Reputação : 139
Número de Mensagens : 2209
Prêmios : [Tuto p/ Iniciante] Usando Direction no Game Maker Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Unity


http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Ir para o topo Ir para baixo

[Tuto p/ Iniciante] Usando Direction no Game Maker Empty Re: [Tuto p/ Iniciante] Usando Direction no Game Maker

Mensagem por dharrison Dom 20 Abr 2014, 12:52

quando vc usa point_direction x1 e y1 é o ponto de origem, e x2 e y2 é o segundo ponto, isso cria uma linha.
O GM pega essa linha e retorna o angulo dela em graus.

eu não manjo muito  scratch 
dharrison
dharrison

Games Ranking : Nota B

Notas recebidas : A - B
Data de inscrição : 04/02/2009
Reputação : 120
Número de Mensagens : 1363
Prêmios : [Tuto p/ Iniciante] Usando Direction no Game Maker Empty

Medalhas x 0 Tutoriais x 9 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 2.0
  • C#


Ir para o topo Ir para baixo

[Tuto p/ Iniciante] Usando Direction no Game Maker Empty Re: [Tuto p/ Iniciante] Usando Direction no Game Maker

Mensagem por Gabreel Seg 21 Abr 2014, 04:26

theguitarmester escreveu:Achei o tutorial bem pequeno, porém cumpre o prometido e é explicado, não falhando em, seu objetivo.


Mas uma coisa que tenho curiosidade sobre direction(direção, vetor):
Como se calcula a direção de 2 pontos, isto é, qual é o algorítmico por trás desta função:
point_direction(x1, y1, x2, y2)

Eu sei que a distância entre dois pontos é:
Raiz Quadrada de (x1-x2)² + (y1-y2)²


Mas já procurei e procurei mas não achei o da direção.
Bom, se for o que eu estou pensando, é simples, pense assim: 

[Tuto p/ Iniciante] Usando Direction no Game Maker IkDoSGS
A tangente disso é (y2 - y1) / (x2 - x1), e a função contrária (isto é, a tangente é a transformação de algum ângulo para tangente (dãã), precisamos da função que faz o contrário) é a cotangente.


Então point_direction(x1, y1, x2, y2) = cotg((y2 - y1) / (x2 – x1))
Gabreel
Gabreel

Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios : [Tuto p/ Iniciante] Usando Direction no Game Maker Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • Outros


Ir para o topo Ir para baixo

[Tuto p/ Iniciante] Usando Direction no Game Maker Empty Re: [Tuto p/ Iniciante] Usando Direction no Game Maker

Mensagem por PedroX Seg 21 Abr 2014, 12:05

Só olhar o item 7: https://gmbr.forumeiros.com/t17425-scriptscripts-matematicos

Falando sobre o tutorial, está muito bom.
Talvez possa acrescentar que hspeed e vspeed dependem também (embora esteja implicito no tutorial):

Código:
direction = 90;
speed = 5;

Automaticamente, hspeed será 0 e vspeed será 5.

Código:
direction = 60;
speed = 10;

Automaticamente, hspeed=5, vspeed=8.66.

_________________


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:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : [Tuto p/ Iniciante] Usando Direction no Game Maker Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

[Tuto p/ Iniciante] Usando Direction no Game Maker Empty Re: [Tuto p/ Iniciante] Usando Direction no Game Maker

Mensagem por polosam Seg 21 Abr 2014, 13:02

...E o mesmo quando inverso. Se declararmos que hspeed=[maior que 0] com vspeed nula, automaticamente a direction é retornada pra nós, nesse caso, 0.

 Eu queria que vocês dessem uma olhada no meu carrinho:
http://www.4shared.com/file/b2jOqkeDce/CARRINHO_ISOMTRICO_BY_POLOSAM.html
 Eu atribuí um monte de subdivisões para os "ângulos de pontos cardeais" que vocês citaram, com pelo menos umas 20 subimages (que ainda aproveito dobrando elas por image_xscale=-1)!
 
 Baixei um model de domínio público de uma ferrari 3d (ou lamborguini, sei lá) e rotacionei ela no studiomax, capturando um monte de PNGs. Já que eu não fui o modelador dela, não há porque reter isso. Compartilho com quem quiser levar a engine adiante!  tongue
polosam
polosam

Games Ranking : Nota A

Notas recebidas : A + B
Data de inscrição : 20/12/2010
Reputação : 120
Número de Mensagens : 749
Prêmios : [Tuto p/ Iniciante] Usando Direction no Game Maker Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4


Ir para o topo Ir para baixo

[Tuto p/ Iniciante] Usando Direction no Game Maker Empty Re: [Tuto p/ Iniciante] Usando Direction no Game Maker

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos