Motor do jogo

All lectures for PT purposes
Nível 1, Lição 1125
Disponível

1. Escrevendo seu primeiro jogo em um mecanismo de jogo

Ao implementar qualquer jogo de computador, existem três etapas:

  1. Inicializando o jogo. Isso inclui várias ações preparatórias: definir o tamanho do campo de jogo e desenhá-lo, criar e configurar objetos do jogo em sua posição inicial, bem como quaisquer outras ações que precisem ser executadas no início do jogo.
  2. Jogando o jogo. Isso pode incluir mover objetos do jogo, ações do jogador, contagem de pontos ganhos, bem como quaisquer outras ações que devem ser executadas em intervalos regulares ou em resposta a cliques de botões e pressionamentos de teclas.
  3. Terminando o jogo. Isso pode incluir parar animações, uma mensagem de vitória/perda e quaisquer outras ações que precisem ser executadas no final do jogo.

Vamos agora percorrer todos os três estágios em ordem e ver como o mecanismo de jogo CodeGym pode ajudar a tornar esse processo mais fácil.


2. Inicializando o jogo

Quando você usa o mecanismo de jogo CodeGym, a inicialização do jogo consiste em apenas duas etapas:

Passo 1: Crie a classe principal do jogo

Para criar seu próprio jogo baseado no mecanismo de jogo CodeGym, você precisa criar uma classe e fazer com que ela estenda a classe Game (com.codegym.engine.cell.Game). Isso dará à sua classe a capacidade de chamar métodos no mecanismo do jogo , e o mecanismo poderá chamar métodos de sua classe . Exemplo:

import com.codegym.engine.cell.Game;

public class MySuperGame extends Game {
  ...
}

Etapa 2: substituir o initialize()método

No initialize()método, você executa todas as ações necessárias para iniciar o jogo: criar o campo de jogo, criar todos os objetos do jogo, etc. Você só precisa declarar este método na classe que herda a classe Game. Exemplo:

import com.codegym.engine.cell.Game;

public class MySuperGame extends Game {
  @Override
  public void initialize() {
     // Here we perform all the actions to initialize the game and its objects
  }
}

O initialize()método é análogo ao main()método. É o ponto de entrada a partir do qual todo o código do seu jogo começa a ser executado.



3. Criando o campo de jogo

Criar o campo de jogo também é um processo de duas etapas:

Passo 1: Divida o campo de jogo em células

O mecanismo do jogo divide todo o campo de jogo em células. O tamanho mínimo é 3×3 e o máximo é 100×100.

O tamanho do campo de jogo é constante uma vez criado. As dimensões horizontal e vertical não precisam ser as mesmas. Por exemplo, uma largura de 7 e uma altura de 9:

Observe que a numeração das células começa no canto superior esquerdo.

Para definir o tamanho do campo de jogo, use o void setScreenSize(int width, int height)método. Ele define o tamanho do campo de jogo. Seus parâmetros são o número de células nas dimensões horizontal ( width) e vertical ( height). Geralmente é chamado uma vez quando o jogo começa. Exemplo:

import com.codegym.engine.cell.Game;

public class MySuperGame extends Game {
   @Override    public void initialize()
   {
      // Set the field size to 7x9 cells
      setScreenSize(7, 9);
      ...
   }
}

Ao escrever um jogo, pode ser necessário obter a largura e a altura atuais do campo de jogo. Os métodos correspondentes são int getScreenWidth()e int getScreenHeight().

Etapa 2: ativar/desativar a grade (opcional)

Se você não gosta de ter uma grade preta separando as células do seu campo de jogo, pode desativá-la.

O void showGrid(boolean isShow)método habilita/desabilita a grade que separa as células. A grade é exibida por padrão. Para desativá-lo, chame este método e passe falsecomo argumento:

showGrid(false);

Resultado:

Para ativar a grade novamente, chame o método assim:

showGrid(true);

Resultado:



4. Programa primitivo

Vamos escrever um jogo muito primitivo que usa o mecanismo de jogo CodeGym. Ele fará 3 coisas:

  1. Ele dividirá o campo de jogo em 9 células: 3×3
  2. Isso desativará a grade (as linhas entre as células)
  3. A célula central será pintada de azul e a letra Xserá escrita nela.

O código final fica assim:

public class MySuperGame extends Game
{
   @Override
   public void initialize()
   {
      // Create a 3x3 playing field
      setScreenSize(3, 3);
      // Disable displaying the grid
      showGrid(false);
      // Change the background of the central cell to blue and display "X" in it
      setCellValueEx(1, 1, Color.BLUE, "Х", Color.ORANGE, 50);
   }
}

Neste exemplo, o campo de jogo é definido como 3x3, a grade é desativada e uma letra laranjaX na metade da altura da célula é colocada na célula central com fundo azul . Esta será a primeira coisa que o jogador verá quando o jogo começar.


Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION