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.

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

  1. Na árvore de Recursos, clique duas vezes no objeto obj_player ou outro objeto relevante.

    A janela Propriedades do objeto aparece.

  2. Escolha Adicionar Evento → Teclado → Up.

    Um teclado Evento Up aparece na seção Eventos.

  3. 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.

  4. Na janela de código, digite o seguinte código:

    physics_apply_local_force (0, 0, 0, -50) -
  5. 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.

coordenadas locais são baseadas em origem do Sprite conforme indicado pelo círculo vermelho.
coordenadas locais são baseadas em origem do Sprite conforme indicado pelo círculo vermelho.

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:

    1. Na árvore de Recursos, clique duas vezes no objeto obj_player (ou outro objeto relevante).

      A janela Propriedades do objeto aparece.

    2. Escolha Adicionar Evento → Teclado → direito.

      Um teclado Evento direito aparece na seção Eventos.

    3. 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.

    4. Na janela de código, digite o seguinte código:

      phy_angular_velocity = 0-phy_rotation + = 10-
    5. 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.


    Publicações relacionadas