[Tutorial]Física básica

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

[Tutorial]Física básica

Mensagem por willcraft2 em Dom 07 Set 2014, 20:07

Título: Física básica
Versão: GameMaker:Studio
Dificuldade: .-. Deveria tirar essa opção, por que depende da pessoa.
Engine: Não tem engines.
Extensões: Não.
DLLs: Não.
Tags: gm:s,física,básica
Autor: Willcraft2

Introdução

Ola pessoal com a vinda do Game Maker: Studio veio o sistema de física e muitos não sabem mexer nela ou por onde começar. Nesse tutorial vamos fazer uma formas geométricas(Circulo,Quadrado,Triangulo) e aplicar física os corpos delas.


As Sprites

* Vamos criar quatro sprites.
* Circulo, Quadrado e triangulo ambas em 64x64 pixels.

A origem das sprites que você for criar tem que ta sempre no center para que não haja bug de colisão.



*1 Altura e largura em 64x pixels.
*2 Clica em center.
*3 Ok.

As mascara não é ajustada na sprite, vamos ver isso depois.

Agora 1 sprite é o nosso chão, ele vai ser 32x pixels não precisa marcar center.

Criando os objetos

Agora pessoal nós vamos criar os objetos das formas geométricas e também o nosso objeto controle.

Objeto Controle

O nosso objeto controle vai ser o responsável ao clicar na room criar aleatoriamente uma forma geométrica(circulo, quadrado, triangulo).

Crie um novo objeto e renomeia ele como obj_controle, criei o evento Global Left Pressed > Execute Code e nele adicione o seguinte código.
Código:

randomize();//Faz com que não sai o mesmo objeto
instance_create(mouse_x,mouse_y,choose(obj_circulo,obj_quadrado,obj_triangulo));//Cria uma instancia(circulo, quadrado e triangulo) na posição x e y do mouse

acabamos o objeto controle.

Objeto Chão

Agora vamos adicionar a sprite do chão para no nosso obj_chao.


Agora vamos aplicar a física no nosso chão, clicando em Uses Physics.


Na Collision Shape vamos clicar em box, na Density, restitution  e friction coloca 0.
ao clicar em Modify Collision Shape vamos ajustar a mascara do objeto chão.


Density: Massa do objeto, quanto maior a massa mais demora para ele cair.
Restitution: Ao personagem quicar no chão ele "salta".
Lienar Damping: É a mesma coisa que o friction só que não precisa de colisão.
Lienar Angular: Reduz a velocidade de rotação.
Friction: Com pequeno friction é causado menor perda de força.

Vai ficar assim:


Vamos ajustar a mascara para ficar assim:

Agora dei ok, ok.

Pronto acabamos o nosso objeto chão.

Objeto Geométricos

Agora vamos fazer o objeto circulo, quadrado e o triangulo.

Crie um novo objeto e adicione a sprites circulo.


Clica na opção Uses Physics, não vamos modificar a mascara por que como a origem da nossa sprite ta centralizada a mascara se ajusta automaticamente.

No objeto obj_quadrado adiciona a sprite spr_quadrado e clica na opção Uses Physics e pronto.

No objeto obj_triangulo adiciona a sprite spr_triangulo e clica na opção Uses Physics, em Collision Shape marca a opção [b]Shape.


Agora clica em Modify Collision Shape e vamos ajustar a mascara, deve estar assim:


Vamos ajustar para ficar desse jeito:


[/b]
Editor de Mascara de física do gm: s

Bom esse é editor de mascara da física do gm: s, explicarei o que cada função faz.


[b]1-
Sprites e o numero de subimages.
2- Subimage escolhida.
3- Tipo de colisão.
4- Lista de pontos.
5- Tamanho da grade horizontal e vertical.
6- Anda a view para esquerda
7- Anda a view para direita
8- Anda a view para cima
9- Anda a view para baixo
10- A view vai para o centro da imagem
11- Habilita/Desabilita a view

[/b]
Colisão em física básica


Ta quase pessoal, agora vamos criar um objeto chamado [b]obj_solid
esse objeto sera a nosso parent, abra seus objetos e coloca todos como parent do objeto obj_solid.

Em todos os objetos menos no obj_controle e no obj_solid adiciona colisão com o obj_solid e após isso coloca o seguinte código.
[/b]
Código:

///Colisão




Habilitando a física no mundo


Bom pessoal agora vamos habilitar a física no nosso mundo.
[b]*
Abra sua room, e vai na aba Physics


Gravity :Vamos deixar 10 por que a gravidade do mundo real é algo próximo de 10 m/s².
gravidade da terra: 9,78 m/s².

Pixels To Meters: transformação de pixel para metro, Agora vamos ver alterar esse valor para todos objetos andar em 16, para isso abra sua calculadora e colocar o seguinte valor 1/16 aperte enter aparecera um valor e esse valor coloca ele dentro do Pixels To Meters, cada pixel é o que vale a 0,06 metros no mundo real.



Pronto pessoal acabou, espero que tenha ajuda, deu trabalhão refazer ele assim .-.
flw
[/b]


Última edição por willcraft2 em Qui 05 Mar 2015, 18:16, editado 1 vez(es)

willcraft2

Ranking : Nota D
Número de Mensagens : 682
Idade : 16
Data de inscrição : 06/04/2012
Notas recebidas : D + D
Reputação : 42
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Tutorial]Física básica

Mensagem por dharrison em Dom 07 Set 2014, 20:10

Tópico Repostado a pedido do Usuário
Aprovado e Movido para Escolha da Staff


ps. will cara ta muito bom esse tuto *-*

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [Tutorial]Física básica

Mensagem por ANDREASCRUST em Qua 04 Mar 2015, 23:06

Cade o codigo de colisão?

ANDREASCRUST

Número de Mensagens : 49
Idade : 23
Data de inscrição : 30/04/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Tutorial]Física básica

Mensagem por AxeInLine em Qui 05 Mar 2015, 12:40

@ Andre, cara, não tem código Laughing. É só isso que tem mesmo yes

@ Topic: Já tinha visto o tópico antes, não sei se tu mudou algo, mas mesmo assim, pelo que eu saiba, se eu tivesse alguma vontade de fazer jogo com física do gm:s mesmo, ia ler e reler umas dez vezes seu tuto Laughing.
Afinal, acho que é o único sobre isso né?

Continua fazendo tutos cheers

AxeInLine

Número de Mensagens : 211
Idade : 14
Data de inscrição : 23/03/2014
Reputação : 40
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Tutorial]Física básica

Mensagem por chicoweb em Qui 05 Mar 2015, 15:00

todo mundo elogia, e lindo e tal tal mas acho que ninguem testou, pelo menos aqui comigo não funciona.

Quando roda ele simplesmente fica desenhando formas na tela era pra acontecer o que afinal???

@ Andre, cara, não tem código Laughing. É só isso que tem mesmo yes

Então pra que inserir um evento colision??????

chicoweb

Ranking : Nota C
Número de Mensagens : 666
Idade : 40
Data de inscrição : 15/05/2012
Notas recebidas : B+C
Reputação : 49
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Tutorial]Física básica

Mensagem por AxeInLine em Qui 05 Mar 2015, 15:32

@ Chico, eu juro que eu tinha uma reposta para isso. Só que me esqueci '--, entosses, acho que isso resolve por enquanto: Dúvidas?

AxeInLine

Número de Mensagens : 211
Idade : 14
Data de inscrição : 23/03/2014
Reputação : 40
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Tutorial]Física básica

Mensagem por chicoweb em Qui 05 Mar 2015, 17:46

entendi vlw.

CONSEGUIIII

afff mano isso ai que o gms fez e dar o peixe limpado, temperado e assado

achei que um dia eu ia entender toda a fisica aplicada a esse tipo de game mas agora vou morrer burro mesmo pq nao precisa kkkkkkkk

Axel o tuto ta perfeito mano eu que tava fazendo uma burrice esqueci de marca o phsycs da room

valeu mesmo!!!

chicoweb

Ranking : Nota C
Número de Mensagens : 666
Idade : 40
Data de inscrição : 15/05/2012
Notas recebidas : B+C
Reputação : 49
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Tutorial]Física básica

Mensagem por Conteúdo patrocinado Hoje à(s) 14:00


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