Como adicionar movimento com a física em gamemaker: studio
Em GameMaker: Studio, você começa o seu objeto definido para a física, você pode querer permitir que o jogador para mover o objeto ao redor da sala durante o jogo. As duas seções a seguir mostram como adicionar movimento a um objeto, bem como fazer um objeto girar para a esquerda ou direita.
Conteúdo
código de exemplo para um evento teclado para cima para aplicar força local
Para aplicar a força para um objeto para torná-lo se mover, criar um teclado Evento Up, conforme descrito no procedimento a seguir. Basta seguir estes passos:
Video: Game Maker Plataforma 2 [GML] - Movimento Básico
Na árvore de Recursos, clique duas vezes no objeto obj_player ou outro objeto relevante.
A janela Propriedades do objeto aparece.
Escolha Adicionar Evento → Teclado → Up.
Um teclado Evento Up aparece na seção Eventos.
Arrastar e soltar uma ação Executar Código da guia de controle para a janela de Ações.
Uma janela de código vazia aparece.
Na janela de código, digite o seguinte código:
physics_apply_local_force (0, 0, 0, -50) -
Clique na marca de seleção verde.
A janela de código é salvo e fechado.
Esse código usa o sistema de coordenadas local para definir um vector para a propulsão. As coordenadas locais são baseadas no sprite, em que os eixos X e Y se encontram na origem. Assim, não importa o caminho que o objeto é girado no quarto, a origem do Sprite nunca muda. Dessa forma, X = 0, Y = -1 seria sempre um pouco abaixo do sprite, como ilustrado nesta figura.
O primeiro valor nesta função é para xlocal, o segundo valor está ylocal, o terceiro é xforce_local, eo último valor representa yforce_local. Usando o valor -50 como o valor para yforce_local, você está colocando força por trás do navio que empurra o navio para a frente.
A quantidade de força é baseado no valor, de modo que um número maior coloca maior vigor. Experiência com isso alterando o valor de -50 a -5000 para ver a diferença que faz. Se você usar um número positivo (digamos, 50) percebe que o navio parece mover-se para trás em vez de avançar.

código de exemplo para eventos de teclado esquerdo e direito
Para permitir que o jogador para transformar o objeto, adicionar Esquerda e Direita eventos de teclado. Para que o leitor se o objeto à esquerda, siga estes passos:
Na árvore de Recursos, clique duas vezes no objeto obj_player ou outro objeto relevante.
A janela Propriedades do objeto aparece.
Escolha Adicionar Evento → Teclado → Esquerda.
Um teclado Evento Esquerda aparece na seção Eventos.
Arrastar e soltar uma ação Executar Código da guia de controle para a janela de Ações.
Uma janela de código vazia aparece.
Na janela de código, digite o seguinte código:
phy_angular_velocity = 0-phy_rotation- = 10-
Clique na marca de seleção verde.
A janela de código é salvo e fechado.
Durante o jogo, o jogador pode agora transformar o objeto para a esquerda. Este código adiciona ou subtrai a rotação física, que é o que controla o ângulo de direção e imagem do objeto quando o jogador pressiona a esquerda; tecla de seta.
Para que o leitor se o objeto para a direita, siga estes passos:
Na árvore de Recursos, clique duas vezes no objeto obj_player (ou outro objeto relevante).
A janela Propriedades do objeto aparece.
Escolha Adicionar Evento → Teclado → direito.
Um teclado Evento direito aparece na seção Eventos.
Arrastar e soltar uma ação Executar Código da guia de controle para a janela de Ações.
Uma janela de código vazia aparece.
Na janela de código, digite o seguinte código:
phy_angular_velocity = 0-phy_rotation + = 10-
Clique na marca de seleção verde.
A janela de código é salvo e fechado. Este código adiciona ou subtrai a rotação física, que é o que controla o ângulo de direção e imagem do objeto quando o jogador pressiona a direita; tecla de seta.
Você poderia dar o objeto de uma viragem mais natural usando physics_apply_torque para fazer rodar o objecto usando torque, que é a força de rotação. Torque leva em conta a massa do objeto e faz girar mais lento, bem como uma vida real a objetos no entanto, em um jogo, nem sempre você quer que ele seja muito real (que é um jogo, depois de tudo).
Outra diferença entre o mundo da física em GameMaker: Studio e as funções tradicionais é que, normalmente, a direção e ângulo de imagem são calculados anti-horário, assim que adicionar 10 à variável direção iria girar o objeto para a esquerda. No entanto, quando se utiliza física, direcções e ângulos são calculados dos ponteiros do relógio, então a adição de 10 para o valor de rotação roda o objecto para a direita.