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
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


[TUTO]Será que está muito longe?

4 participantes

Ir para baixo

[TUTO]Será que está muito longe? Empty [TUTO]Será que está muito longe?

Mensagem por Hatzo enkiri Sáb 04 Set 2010, 19:31

Nível:Iniciante/Intermediário
Plataforma:Eu não sei mas o meu Game Maker é o 8

Distância customizada

Olá pessoal!
Hoje eu vou ensinar a achar a distância entre dois objetos.

Muitas vezes nós programadores de gml precisamos achar a distância entre dois objetos.
Para isso existem dois jeitos:
O primeiro ,que é mais fácil, criado por nosso ídolo:Mark o criador do Game Maker ;
E o segundo que é customizado criado por mim!!

Mas como eu faço isso? Tem que ser um grande programador para isso ,não?
Tem que saber milhares de códigos,não?


Bom não é tão difícil só tem que saber um pouco de matemática e um pouco de Comandos do GM.
Bom,Primeiramente tenho que explicar duas coisas:

1-Função
Uma função é um script que retorna valores isso é muito bom pois assim nós podemos fazer nossos próprios códigos como o move_towards_point().

2.Como vai ser o código
Isso é uma coisa que você vai ver só no Ensino Médio ou talvez já tenha visto isso.
A fórmula é bem grandinha,e ela pode ser explicada pelo grande Pitágoras!
Tá aí o código:

Código:
var d,x1,x2,y1,y2;

if instance_exists(argument0)
{x1=x
x2=argument0.x
y1=y
y2=argument0.y

d=floor(power(sqr(x1-x2)+sqr(y1-y2),1/2))}

return d;

Ponha esse código num script.E quando quiser usá-lo então ponha
Código:
nome_do script(Nome_do objeto)

Vamos supor que você queira testar a distância entre o objeto_alpha e o objeto_beta(no obejto_alpha)
e se ela for maior que 100 então a instância do alpha é destruída e o nome que eu dei para o script é distanciao .O código será então:

Código:
if distanciao(objeto_beta)>100
{instance_destroy()}

Para desenhar o valor da distancia é necessário que você salve o valor numa variável primeiro.
Usando o mesmo exemplo(o script continua com o nome de distanciao)
No evento create:
Código:
d_d=0

No evento STEP:
Código:
d_d=distancia(objeto_beta)

No evento DRAW
Código:
{draw_text(x_que_vc_quer,y_que_vc_quer,string(d_d))}

Por último eu vou explicar o código:
Código:
var d,x1,x2,y1,y2;//declarei as variáveis que serão utilizadas no script
Código:
if instance_exists(argument0)//checa se existe uma instância do outro objeto
{x1=x//var x1 igual ao x do objeto em que vc pos o código
x2=argument0.x//var x2 igual ao x do outro objeto em que você quer achar a distância
y1=y//var y1 igual ao y do objeto em que vc pos o código
y2=argument0.y//var y2 igual ao y do outro objeto em que você quer achar a distância
Código:
d=floor(power(sqr(x1-x2)+sqr(y1-y2),1/2))}//acha a distância graças ao principio matemático
Código:

return d;//retorna o valor da distância por isso o script é uma função
Observações:
**A função do criador do game maker correspondente é
Código:
distance_to_object(nome do objeto)

**Eu só testei com apenas uma instância de cada objeto.

**Não me ache louco por fazer isso em modo custom.


Qualquer ou outra coisa que queira acrescentar,por favor fale aqui no tópico.
E comentem.


Última edição por Janx em Sáb 18 Set 2010, 09:36, editado 2 vez(es) (Motivo da edição : Adequar as regras)
avatar
Hatzo enkiri

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 19/02/2009
Reputação : 7
Número de Mensagens : 226
Prêmios : [TUTO]Será que está muito longe? 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

Ir para o topo Ir para baixo

[TUTO]Será que está muito longe? Empty Re: [TUTO]Será que está muito longe?

Mensagem por vitor_liminha123 Sáb 04 Set 2010, 19:33

O.O
Não entendi nadinha.
Sad (sou burro)
vitor_liminha123
vitor_liminha123

Data de inscrição : 16/08/2010
Reputação : 12
Número de Mensagens : 510
Prêmios : [TUTO]Será que está muito longe? 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

http://www.newgrounds.com/tanber

Ir para o topo Ir para baixo

[TUTO]Será que está muito longe? Empty Re: [TUTO]Será que está muito longe?

Mensagem por Hatzo enkiri Sáb 04 Set 2010, 19:45

O que não entendeu?
avatar
Hatzo enkiri

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 19/02/2009
Reputação : 7
Número de Mensagens : 226
Prêmios : [TUTO]Será que está muito longe? 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

Ir para o topo Ir para baixo

[TUTO]Será que está muito longe? Empty Re: [TUTO]Será que está muito longe?

Mensagem por Hedgehog Sáb 04 Set 2010, 19:57

Calma vitor! Burro não, novato, diz ai o q vc não entendeu q agente explica!
Hedgehog
Hedgehog

Data de inscrição : 28/08/2008
Reputação : -2
Número de Mensagens : 384
Prêmios : [TUTO]Será que está muito longe? 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

http://www.recursos-mania.forumeiros.com/

Ir para o topo Ir para baixo

[TUTO]Será que está muito longe? Empty Re: [TUTO]Será que está muito longe?

Mensagem por Hatzo enkiri Sáb 04 Set 2010, 20:07

Hedgehog vc entendeu tudo?
Vitor o Hedgehog está certo ainda há muito o que aprender.
Uma dica que eute dou é dar uma olhada nas aulas e procurar apostilas de lógica de Programação;
Eu era pior que burro quando comecei por isso desisti durante um tempo do GM.
Daí eu comecei um curso de técnico em Informática e agora fica mais fácil entender o Game Maker.
Espero que tenha pegado a dica.
avatar
Hatzo enkiri

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 19/02/2009
Reputação : 7
Número de Mensagens : 226
Prêmios : [TUTO]Será que está muito longe? 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

Ir para o topo Ir para baixo

[TUTO]Será que está muito longe? Empty Re: [TUTO]Será que está muito longe?

Mensagem por Hedgehog Sáb 04 Set 2010, 20:10

Não entendi no total, mas as funções e o motivo de elas estarem lá, tais como as variáveis, sim.

Vitor, pra vc que é novato, teria resultados parecidos assim

Crie um obj_controle

CREATE

Código:
distancia=0

no STEP

Código:
x=player.x
y=player.y

Código:
distancia=distance_to_object(objeto que vc quer medir a distancia)

DRAW

Na aba control, acho, arrasta Draw variable

Código:
variable=distancia
x=16
y=16


Última edição por Hedgehog em Sáb 04 Set 2010, 20:24, editado 1 vez(es)
Hedgehog
Hedgehog

Data de inscrição : 28/08/2008
Reputação : -2
Número de Mensagens : 384
Prêmios : [TUTO]Será que está muito longe? 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

http://www.recursos-mania.forumeiros.com/

Ir para o topo Ir para baixo

[TUTO]Será que está muito longe? Empty Re: [TUTO]Será que está muito longe?

Mensagem por Hatzo enkiri Sáb 04 Set 2010, 20:24

As funções power é uma função matemática que tem a sintaxe(como é fgeita a função):

Código:
power(num,num2)

Daí ele faz num elevado a num2
Para tirar a raiz quadrada você tem elevar o número a uma fração (1/2).
o floor arredonda um número real para um inteiro menor.Por exemplo:

Código:
floor(7.2)

isso retorna 7
E o sqr eleva um número ao quadrado.
Exemplo:

Código:
sqr(4)
Isso retorna 16.
Outra coisa a formula matemática é uma coisa que você aprende em geometria na escola.Eu estou no segundo colegial aprendi isso na semana passada
avatar
Hatzo enkiri

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 19/02/2009
Reputação : 7
Número de Mensagens : 226
Prêmios : [TUTO]Será que está muito longe? 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

Ir para o topo Ir para baixo

[TUTO]Será que está muito longe? Empty Re: [TUTO]Será que está muito longe?

Mensagem por Luan Maia Sáb 04 Set 2010, 22:33

Acho que entendi o tutorial, mesmo estando no 9º ano (8ª Série) me lembro de já ter aprendido estas operações matemáticas, como o Teorema (acho que é isso) de Pitágoras, não me lembro quando, mas eu já aprendi isso sim. Mas enfim, ótimo tutorial, isso é muito importante dependendo do jogo em que você pretende fazer, mesmo tendo o "distance_to_object". xD
flw
Luan Maia
Luan Maia

Games Ranking : Sem avaliações

Notas recebidas : D+C+C+D
Data de inscrição : 01/07/2010
Reputação : 2
Número de Mensagens : 404
Prêmios : [TUTO]Será que está muito longe? 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

Ir para o topo Ir para baixo

[TUTO]Será que está muito longe? Empty Re: [TUTO]Será que está muito longe?

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