Entrar
Procurar
Últimos assuntos
» Ideia: MMFMakers, do zeropor mediamaker Qua 26 maio 2021, 12:28
» [Flash] Haunt the house
por mediamaker Sáb 19 Set 2020, 16:47
» Como a criar passo a passo engine de Movimento Grid com colisão (tipo Bomberman) completo usadno extensão Array?
por mediamaker Sex 15 Set 2017, 14:19
» CF2.5 -> 26 reais na steam
por Matheus290 Ter 22 Dez 2015, 17:52
» Aplicação com Editbox não tá rodando online
por Matheus290 Sáb 19 Set 2015, 01:38
» A Guilda continua!!!! "Âncora Team" (novo nome)
por weliowl7 Qua 16 Set 2015, 01:52
» Sub-application e Inventario
por majorcorps Dom 23 Ago 2015, 13:11
» Efeito de string
por majorcorps Sáb 22 Ago 2015, 19:55
» [PC] Pitiri 1997
por Matheus290 Sáb 20 Jun 2015, 17:10
» Teclado virtual com Edit Box
por mediamaker Sáb 20 Jun 2015, 14:10
Quem está conectado?
Há 24 usuários online :: 0 registrados, 0 invisíveis e 24 visitantes Nenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 251 em Ter 26 Out 2021, 22:21
Estatísticas
Temos 256 usuários registradosO último membro registrado é Sitydistta
Os nossos membros postaram um total de 5268 mensagens em 575 assuntos
Noções matemáticas - Plano Cartesiano
4 participantes
Fusion Makers :: Geral :: Matérias :: Iniciante
Página 1 de 1
Noções matemáticas - Plano Cartesiano
Noções matemáticas
Plano Cartesiano
Introdução:
Quem já conhece esta área de desenvolvimento de Indie Games a algum tempo sabe muito bem que ela exige um bom conhecimento de matemática e física, seja qual for a ferramenta utilizada para isso. E o Multimedia Fusion 2 não é exceção. A ideia dessa série é reforçar certos conceitos matemáticos utilizados corriqueiramente na criação de jogos, a fim de poupar o aluno do trabalho de pesquisar na internet aquilo que ele precisará usar. Até porque, geralmente o conteúdo que encontramos na internet serve apenas para revisar, não aprender.
Nesta aula, falaremos de um conceito matemático básico: Plano Cartesiano. Não há dificuldade alguma em compreendê-lo, mas é simplesmente fundamental para o desenvolvimento de jogos. É a base de tudo que diz respeito à movimentação, tanto no Multimedia Fusion 2, quanto em outras ferramentas: movimentos personalizados (plataforma, oito direções, retilíneo, TileBased, 360º, entre outros), Inteligência Artificial, criação de objetos, mudanças de posição etc.
O Plano Cartesiano:
É um conceito é tão simples quanto importante. Você com certeza já o viu na escola. Mas se não lembra, não se preocupe, pois irá lembrar agora. E se realmente não aprendeu ainda, aprenderá agora. Eis um plano cartesiano:
Um plano cartesiano nada mais é do que duas retas perpendiculares entre si, cada uma representando um eixo. Perceba, são duas retas, não segmentos de reta; ambas são infinitas (basta observar as setas nas pontas das retas), mas nos limitamos a representar o essencial pois é impossível representar algo infinito. Chamamos a reta horizontal de eixo X ou eixo das abscissas, e nela os valores crescem da esquerda para direita. Já a reta vertical, chamamos de eixo Y ou eixo das coordenadas, e os valores crescem de baixo para cima. Cada ponto no eixo X é chamado de abscissa, e cada ponto no eixo Y é uma coordenada.
Localizando pontos em um Plano Cartesiano:
Um ponto qualquer em um plano cartesiano é representado na forma (X;Y) ou (X,Y), sendo X a abscissa e Y a coordenada. Isso significa que um ponto P representado por (8;2) se encontra no local em que ao mesmo tempo estão localizadas a abscissa 8 e a coordenada 2. Veja na figura abaixo alguns pontos destacados e suas respectivas representações:
Ponto A: (2;8)
Ponto B: (-7;-6)
Ponto C: (-4;4)
Ponto D: (0;0)
E isso é o básico sobre Plano Cartesiano. Agora, vamos ver como aplicá-lo no desenvolvimento de jogos.
Aplicando os conceitos ao desenvolvimento de jogos:
Antes de mais nada, uma informação importante: o "Plano Computacional", que utilizaremos daqui para frente, é invertido no eixo Y. Isto significa dizer que, em relação ao eixo das coordenadas, onde os valores são positivos no Plano Cartesiano, são negativos no Computacional, ou seja, eles crescem de cima para baixo; e vice-versa. Apesar disso, os princípios são exatamente os mesmos. O motivo de eu ter explicado até agora tendo como base um Plano padrão é para não causar problemas futuros para quem estiver vendo isto pela primeira vez. É importante não confundir o Plano Cartesiano com o Computacional. Informação dada, vamos prosseguir.
O seu jogo é um Plano Computacional gigante. Cada pixel da tela é um ponto nesse Plano Computacional gigante. A origem (posição em que tanto X quanto Y são 0), nada mais é do que o ponto (0;0). Um frame de tamanho 640x480 nada mais é do que um plano computacional com 640 abscissas e 480 coordenadas. No Multimedia Fusion 2 é possível saber em que ponto do Frame o mouse está localizado através de um indicador na parte inferior direita do programa. É possível também saber a posição atual de um objeto no jogo (ponto em que ele se encontra) pelo Debugger, ou a de um objeto no Frame Editor pelas suas propriedades. Ou seja, a posição de todos os objetos é dada através de pontos, exatamente como em um Plano Cartesiano ou Computacional (que o MMF2 tem como referência para posicionamento o HotSpot daquele objeto).
Vamos ver isso na prática. Criaremos agora uma espécie de "teletransporte". Crie um Active Object e posicione-o no ponto (0;0), através de suas propriedades (lembrando que a referência para o posicionamento de um objeto é o HotSpot, tanto no Multimedia Fusion 2 como em várias outras ferramentas). O que queremos é que ele se teletransporte para o ponto (320;240). Então, vá ao Event Editor e crie o seguinte evento:
Upon pressing "Enter"
(Active) Set X position to 320
(Active) Set Y position to 240
Ou seja, definimos para que ele vá até a abscissa 320 e até a coordenada 240. Teste o jogo e veja você mesmo...
Tá, legal, mas teletransporte é bobagem. Você não vai usar isso com frequência (ou vai?). Então agora, faremos um movimento de oito direções simples. O objetivo é apenas mostrar o uso dos conceitos de Plano Cartesiano, então ele não terá aceleração, desaceleração ou colisões. Será somente a movimentação. Embora o resto seja fácil de fazer tendo alguns conhecimentos de MMF2 e usando a cabeça...
Adicione este evento:
Repeat while ("Player 1") Moved right
(Active) Set X position to X("Active")+2
O evento acima faz com que, ao manter pressionada a tecla direita, o Active vá para duas abscissas após a que ele se encontra no momento. Ou seja, se mova em 2px. Agora é só repetir o evento para o outro sentido.
Repeat while ("Player 1") Moved left
(Active) Set X position to X("Active")-2
E agora, faremos os movimentos verticais. O princípio é exatamente o mesmo dos horizontais, mas agora alterando as coordenadas do objeto. E lembre-se que usamos o Plano Computacional, não o Cartesiano (os valores crescem de cima para baixo no eixo Y).
Repeat while ("Player 1") Moved top
(Active) Set Y position to Y("Active")-2
Repeat while ("Player 1") Moved down
(Active) Set Y position to Y("Active")+2
E com isso, temos um movimento de oito direções simples.
Finalizando:
Ok, talvez alguns de vocês estejam me perguntando pra que tanta explicação sobre o conceito em si, se na prática é tão simples. A resposta é que mostrei só a ponta do Iceberg. Embora não seja necessário ter conhecimento real de Plano Cartesiano para fazer um movimento de oito direções simples, ele é pré-requisito para a compreensão de outros conceitos mais avançados, como cálculos de Seno e Cosseno em uma circunferência. Você não vai conseguir fazer esses cálculos se não tiver aprendido pelo menos o básico de Plano Cartesiano. Tais cálculos serão fundamentais para a programação de movimentos circulares e 360º.
Bom galera, é isso aí. Espero que tenham gostado da aula. Que os esquecidos tenham lembrado, e os que não aprenderam tenham aprendido.
Até mais.
Plano Cartesiano
Introdução:
Quem já conhece esta área de desenvolvimento de Indie Games a algum tempo sabe muito bem que ela exige um bom conhecimento de matemática e física, seja qual for a ferramenta utilizada para isso. E o Multimedia Fusion 2 não é exceção. A ideia dessa série é reforçar certos conceitos matemáticos utilizados corriqueiramente na criação de jogos, a fim de poupar o aluno do trabalho de pesquisar na internet aquilo que ele precisará usar. Até porque, geralmente o conteúdo que encontramos na internet serve apenas para revisar, não aprender.
Nesta aula, falaremos de um conceito matemático básico: Plano Cartesiano. Não há dificuldade alguma em compreendê-lo, mas é simplesmente fundamental para o desenvolvimento de jogos. É a base de tudo que diz respeito à movimentação, tanto no Multimedia Fusion 2, quanto em outras ferramentas: movimentos personalizados (plataforma, oito direções, retilíneo, TileBased, 360º, entre outros), Inteligência Artificial, criação de objetos, mudanças de posição etc.
O Plano Cartesiano:
É um conceito é tão simples quanto importante. Você com certeza já o viu na escola. Mas se não lembra, não se preocupe, pois irá lembrar agora. E se realmente não aprendeu ainda, aprenderá agora. Eis um plano cartesiano:
Um plano cartesiano nada mais é do que duas retas perpendiculares entre si, cada uma representando um eixo. Perceba, são duas retas, não segmentos de reta; ambas são infinitas (basta observar as setas nas pontas das retas), mas nos limitamos a representar o essencial pois é impossível representar algo infinito. Chamamos a reta horizontal de eixo X ou eixo das abscissas, e nela os valores crescem da esquerda para direita. Já a reta vertical, chamamos de eixo Y ou eixo das coordenadas, e os valores crescem de baixo para cima. Cada ponto no eixo X é chamado de abscissa, e cada ponto no eixo Y é uma coordenada.
Localizando pontos em um Plano Cartesiano:
Um ponto qualquer em um plano cartesiano é representado na forma (X;Y) ou (X,Y), sendo X a abscissa e Y a coordenada. Isso significa que um ponto P representado por (8;2) se encontra no local em que ao mesmo tempo estão localizadas a abscissa 8 e a coordenada 2. Veja na figura abaixo alguns pontos destacados e suas respectivas representações:
Ponto A: (2;8)
Ponto B: (-7;-6)
Ponto C: (-4;4)
Ponto D: (0;0)
E isso é o básico sobre Plano Cartesiano. Agora, vamos ver como aplicá-lo no desenvolvimento de jogos.
Aplicando os conceitos ao desenvolvimento de jogos:
Antes de mais nada, uma informação importante: o "Plano Computacional", que utilizaremos daqui para frente, é invertido no eixo Y. Isto significa dizer que, em relação ao eixo das coordenadas, onde os valores são positivos no Plano Cartesiano, são negativos no Computacional, ou seja, eles crescem de cima para baixo; e vice-versa. Apesar disso, os princípios são exatamente os mesmos. O motivo de eu ter explicado até agora tendo como base um Plano padrão é para não causar problemas futuros para quem estiver vendo isto pela primeira vez. É importante não confundir o Plano Cartesiano com o Computacional. Informação dada, vamos prosseguir.
O seu jogo é um Plano Computacional gigante. Cada pixel da tela é um ponto nesse Plano Computacional gigante. A origem (posição em que tanto X quanto Y são 0), nada mais é do que o ponto (0;0). Um frame de tamanho 640x480 nada mais é do que um plano computacional com 640 abscissas e 480 coordenadas. No Multimedia Fusion 2 é possível saber em que ponto do Frame o mouse está localizado através de um indicador na parte inferior direita do programa. É possível também saber a posição atual de um objeto no jogo (ponto em que ele se encontra) pelo Debugger, ou a de um objeto no Frame Editor pelas suas propriedades. Ou seja, a posição de todos os objetos é dada através de pontos, exatamente como em um Plano Cartesiano ou Computacional (que o MMF2 tem como referência para posicionamento o HotSpot daquele objeto).
Vamos ver isso na prática. Criaremos agora uma espécie de "teletransporte". Crie um Active Object e posicione-o no ponto (0;0), através de suas propriedades (lembrando que a referência para o posicionamento de um objeto é o HotSpot, tanto no Multimedia Fusion 2 como em várias outras ferramentas). O que queremos é que ele se teletransporte para o ponto (320;240). Então, vá ao Event Editor e crie o seguinte evento:
Upon pressing "Enter"
(Active) Set X position to 320
(Active) Set Y position to 240
Ou seja, definimos para que ele vá até a abscissa 320 e até a coordenada 240. Teste o jogo e veja você mesmo...
Tá, legal, mas teletransporte é bobagem. Você não vai usar isso com frequência (ou vai?). Então agora, faremos um movimento de oito direções simples. O objetivo é apenas mostrar o uso dos conceitos de Plano Cartesiano, então ele não terá aceleração, desaceleração ou colisões. Será somente a movimentação. Embora o resto seja fácil de fazer tendo alguns conhecimentos de MMF2 e usando a cabeça...
Adicione este evento:
Repeat while ("Player 1") Moved right
(Active) Set X position to X("Active")+2
O evento acima faz com que, ao manter pressionada a tecla direita, o Active vá para duas abscissas após a que ele se encontra no momento. Ou seja, se mova em 2px. Agora é só repetir o evento para o outro sentido.
Repeat while ("Player 1") Moved left
(Active) Set X position to X("Active")-2
E agora, faremos os movimentos verticais. O princípio é exatamente o mesmo dos horizontais, mas agora alterando as coordenadas do objeto. E lembre-se que usamos o Plano Computacional, não o Cartesiano (os valores crescem de cima para baixo no eixo Y).
Repeat while ("Player 1") Moved top
(Active) Set Y position to Y("Active")-2
Repeat while ("Player 1") Moved down
(Active) Set Y position to Y("Active")+2
E com isso, temos um movimento de oito direções simples.
Finalizando:
Ok, talvez alguns de vocês estejam me perguntando pra que tanta explicação sobre o conceito em si, se na prática é tão simples. A resposta é que mostrei só a ponta do Iceberg. Embora não seja necessário ter conhecimento real de Plano Cartesiano para fazer um movimento de oito direções simples, ele é pré-requisito para a compreensão de outros conceitos mais avançados, como cálculos de Seno e Cosseno em uma circunferência. Você não vai conseguir fazer esses cálculos se não tiver aprendido pelo menos o básico de Plano Cartesiano. Tais cálculos serão fundamentais para a programação de movimentos circulares e 360º.
Bom galera, é isso aí. Espero que tenham gostado da aula. Que os esquecidos tenham lembrado, e os que não aprenderam tenham aprendido.
Até mais.
Última edição por Eskyz em Dom 05 Ago 2012, 19:03, editado 1 vez(es)
Re: Noções matemáticas - Plano Cartesiano
Nossa cara, muito bom! Mas eu to com um pressentimento que só aqueles que não tem preguiça e que tem vontade de crescer é que irão ler. Infelizmente.
Mas ficou muito bom! Você poderia ter dado exemplos "Localizando pontos em um Plano Cartesiano" usando a tela do MMF.
--------------
Pessoal, lembrando que isso se aplica à toda computação. Mas normalmente, se usa números Hexadecimais (na programação). No MMF usa números decimais.
Por exemplo:
PosX = 5C
PosY = 1A
Seria:
PosX = 92
PosY = 26
--------
Mas é isso! Ótimo tutorial, Eskyz! +1
Mas ficou muito bom! Você poderia ter dado exemplos "Localizando pontos em um Plano Cartesiano" usando a tela do MMF.
--------------
Pessoal, lembrando que isso se aplica à toda computação. Mas normalmente, se usa números Hexadecimais (na programação). No MMF usa números decimais.
Por exemplo:
PosX = 5C
PosY = 1A
Seria:
PosX = 92
PosY = 26
--------
Mas é isso! Ótimo tutorial, Eskyz! +1
Matheus290- Administrador
- Mensagens : 710
Data de inscrição : 18/02/2010
Idade : 30
Localização : Bauru SP
Re: Noções matemáticas - Plano Cartesiano
Ficou ótimo, muito bem explicado. Com certeza ajudara os iniciantes em programação. +1
Re: Noções matemáticas - Plano Cartesiano
Muito bom!
Na minha opinião,prefiro chamar logo de X e Y xD
Mesmo assim,bom tutorial nada!
ÓTIMO!
+1 Tio Ex.
Na minha opinião,prefiro chamar logo de X e Y xD
Mesmo assim,bom tutorial nada!
ÓTIMO!
+1 Tio Ex.
Sonic_BR- Usuário
- Mensagens : 477
Data de inscrição : 25/04/2010
Idade : 25
Localização : Vitória da Conquista-BA
Re: Noções matemáticas - Plano Cartesiano
Sonic_BR escreveu:Na minha opinião,prefiro chamar logo de X e Y xD
A que você se refere? Ao nome "Plano Cartesiano"?
Matheus290- Administrador
- Mensagens : 710
Data de inscrição : 18/02/2010
Idade : 30
Localização : Bauru SP
Re: Noções matemáticas - Plano Cartesiano
Matheus290 escreveu:Sonic_BR escreveu:Na minha opinião,prefiro chamar logo de X e Y xD
A que você se refere? Ao nome "Plano Cartesiano"?
Não,tô me referindo a "abscissa" e "coordenadas" '-'
Enfim,vou dar o +1 que eu esqueci de dar...
Sonic_BR- Usuário
- Mensagens : 477
Data de inscrição : 25/04/2010
Idade : 25
Localização : Vitória da Conquista-BA
Re: Noções matemáticas - Plano Cartesiano
Opa, valeu pessoal!
Matheus, vou dar uma incrementada no tutorial esse fim de semana então. Aulas começaram já, não tô acessando o PC durante a semana... até posso, mas nem dá tempo pra escrever. Agenda tá cheia, sério. A propósito... obrigado pelo +1, mas a matéria tá aprovada? Você disse que ficou boa, mas não que ia aprovar ;T
Sonic, isso é irrelevante. Só comentei porque as vezes o cara pode se deparar com esses nomes alternativos, principalmente quando tá estudando matemática. Meu professor só chama de coordenada e abscissa.
Sobre o Plano Cartesiano, claro, não é necessário conhecimento dele para manipular posições no MMF2. Se o seu objetivo é fazer um movimento simples, o conceito básico de X e Y serve. Mas essa aula foi só pra preparar terreno mesmo pra cálculos de seno e cosseno na circunferência. Tava vendo o tópico de movimento 360º do tio Thetheus e tinha um pessoal com dificuldade nisso aí.
Matheus, vou dar uma incrementada no tutorial esse fim de semana então. Aulas começaram já, não tô acessando o PC durante a semana... até posso, mas nem dá tempo pra escrever. Agenda tá cheia, sério. A propósito... obrigado pelo +1, mas a matéria tá aprovada? Você disse que ficou boa, mas não que ia aprovar ;T
Sonic, isso é irrelevante. Só comentei porque as vezes o cara pode se deparar com esses nomes alternativos, principalmente quando tá estudando matemática. Meu professor só chama de coordenada e abscissa.
Sobre o Plano Cartesiano, claro, não é necessário conhecimento dele para manipular posições no MMF2. Se o seu objetivo é fazer um movimento simples, o conceito básico de X e Y serve. Mas essa aula foi só pra preparar terreno mesmo pra cálculos de seno e cosseno na circunferência. Tava vendo o tópico de movimento 360º do tio Thetheus e tinha um pessoal com dificuldade nisso aí.
Re: Noções matemáticas - Plano Cartesiano
Hm...
Tá ai uma coisa que eu aprendi antes da hora xD
Tá ai uma coisa que eu aprendi antes da hora xD
Sonic_BR- Usuário
- Mensagens : 477
Data de inscrição : 25/04/2010
Idade : 25
Localização : Vitória da Conquista-BA
Re: Noções matemáticas - Plano Cartesiano
Pronto, imagenzinha demonstrando algumas localizações adicionada.
Ah é, e o próximo noções matemáticas vai ser sobre seno e cosseno em um triângulo retângulo (nada de lei dos senos e lei dos cossenos, não vamos usar isso). Mas isso daí só depois de Movimento Personalizado, q prometi escrever lá no blog...
Ah é, e o próximo noções matemáticas vai ser sobre seno e cosseno em um triângulo retângulo (nada de lei dos senos e lei dos cossenos, não vamos usar isso). Mas isso daí só depois de Movimento Personalizado, q prometi escrever lá no blog...
Fusion Makers :: Geral :: Matérias :: Iniciante
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|