[Física] Gravidade

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Física] Gravidade

Mensagem por Meokor em Sex 07 Maio 2010, 12:17

Olá pessoal!

Eu estou migrando para um novo ambiente de desenvolvimento, é eu estou tentando aprender a criar jogos no Flash por vários motivos... Mas eu quero tratar de um assunto especial neste tópico com vocês a Gravidade.

Bom todos nós sabemos que no Game Maker usa-se de uma variavel chamada gravity que nós atribuimos valores a ela de acordo com a gravidade que desejamos. Mas e se eu não estou a desenvolver em Game Maker eu não tenho essa variavel, portanto devo criar meu próprio sistema de gravidade correto?

Então, como eu sei que várias pessoas aqui já criaram jogos em C/C++ e até em outras linguagens, gostaria de saber como funciona a gravidade, se existe algum site que possa estar explicando detalhadamente como faço para colocar um sistema desses nos meus jogos. Bom apenas o principio já vale, porque dai eu uso de um jeito pra adaptar no Flash.

Abraços...
Meokor

Meokor

Número de Mensagens : 224
Idade : 24
Data de inscrição : 02/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://www.mindcrop.com.br

Voltar ao Topo Ir em baixo

Re: [Física] Gravidade

Mensagem por itallo em Sex 07 Maio 2010, 12:29

cara gravidade para essas linguagens deve ser fácil de fazer.

tente fazer um numero que sempre vá diminuir exemplo:

create:
grv = 0.25

step:
se não estiver colidindo com o objeto chao
{
y = y - grv
}


o personagem sempre irá para baixo, a posição de Y sempre será Y = Y - 0.25 diminuindo a posição de y dando uma impressão de gravidade

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: [Física] Gravidade

Mensagem por vinians em Sex 07 Maio 2010, 12:53

Em outras linguagens voce pode simular isso com seno e cosseno. A gravidade tem uma ACELERACAO por isso não adiante somente "somar" no y voce tem que "acumular" a soma para dar o efeito correto.
Por exemplo:
Codigo de inicializacao da sua linguagem:
Exemplo para C/C++/Java

gravidade_direcao = (PI / 2) * 3; //270 graus em Radianos
gravidade_forca=1;
forca_vertical = 0;
forca_horizontal = 0;

Agora no codigo que vai "adicionar" a gravidade a cada passada do loop:

if (gravidade_forca != 0)
{

forca_x = forca_x + cos(gravidade_direcao) * gravidade_forca;
forca_y = forca_y + sin(gravidade_direcao) * gravidade_forca;
}
y = y + forca_y;
x = x + forca_x;

Assiim quando voce nao quizer mais a gravidade, na colisao por exemplo, basta comandar:
Código:

gravidade_forca = 0;

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: [Física] Gravidade

Mensagem por Convidad em Sex 07 Maio 2010, 12:55

gravidade e para para jogos de plataforma ne?

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: [Física] Gravidade

Mensagem por Meokor em Sex 07 Maio 2010, 13:09

vinians escreveu:Em outras linguagens voce pode simular isso com seno e cosseno. A gravidade tem uma ACELERACAO por isso não adiante somente "somar" no y voce tem que "acumular" a soma para dar o efeito correto.
Por exemplo:
Codigo de inicializacao da sua linguagem:
Exemplo para C/C++/Java

gravidade_direcao = (PI / 2) * 3; //270 graus em Radianos
gravidade_forca=1;
forca_vertical = 0;
forca_horizontal = 0;

Agora no codigo que vai "adicionar" a gravidade a cada passada do loop:

if (gravidade_forca != 0)
{

forca_x = forca_x + cos(gravidade_direcao) * gravidade_forca;
forca_y = forca_y + sin(gravidade_direcao) * gravidade_forca;
}
y = y + forca_y;
x = x + forca_x;

Assiim quando voce nao quizer mais a gravidade, na colisao por exemplo, basta comandar:
Código:

gravidade_forca = 0;

Legal era isso mesmo. Vou fazer alguns testes assim que chegar do serviço. Ah, eu não entendi muito a respeito de "acumular" a soma, porque no fim você acabou somando do mesmo jeito Rolling Eyes .
Eu andei pesquisando alguns exemplos na internet e achei outras formas de fazer que envolvia até o raio da bolinha ( link ). Isso é desnecessário?

Valeu ai pela ajuda amigão!
Abraços...

Meokor

Número de Mensagens : 224
Idade : 24
Data de inscrição : 02/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://www.mindcrop.com.br

Voltar ao Topo Ir em baixo

Re: [Física] Gravidade

Mensagem por vinians em Sex 07 Maio 2010, 13:14

Meokor escreveu:
Legal era isso mesmo. Vou fazer alguns testes assim que chegar do serviço. Ah, eu não entendi muito a respeito de "acumular" a soma, porque no fim você acabou somando do mesmo jeito Rolling Eyes .

Não é o mesmo não. Se voce verificar atentamente, a cada "passo" a variavel forca_y vai "aumentando" seu valor, e depois esse valor "acumulado" é somado a variavel y. Isso é pra dar o efeito de aceleração.

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: [Física] Gravidade

Mensagem por Meokor em Sex 07 Maio 2010, 13:59

Ah sim! Agora entendi...
Obrigado novamente, assim que tiver algo pronto eu posto pra vcs verem!
[]'s

Meokor

Número de Mensagens : 224
Idade : 24
Data de inscrição : 02/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://www.mindcrop.com.br

Voltar ao Topo Ir em baixo

Re: [Física] Gravidade

Mensagem por Conteúdo patrocinado Hoje à(s) 16:29


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum