1. Escribir tu primer juego en un motor de juego

Al implementar cualquier juego de computadora, hay tres etapas:

  1. Inicializando el juego. Esto incluye varias acciones preparatorias: establecer el tamaño del campo de juego y dibujarlo, crear y colocar los objetos del juego en su posición inicial, así como cualquier otra acción que deba realizarse al comienzo del juego.
  2. Jugando el juego. Esto puede incluir mover objetos del juego, acciones del jugador, puntos de conteo obtenidos, así como cualquier otra acción que deba realizarse a intervalos regulares o en respuesta a clics de botones y pulsaciones de teclas.
  3. Finalizando el juego. Esto podría incluir detener animaciones, un mensaje de ganar/perder y cualquier otra acción que deba realizarse al final del juego.

Ahora recorreremos las tres etapas en orden y veremos cómo el motor de juego CodeGym puede ayudar a que este proceso sea más fácil.


2. Inicializar el juego

Cuando utiliza el motor de juego CodeGym, la inicialización del juego consta de solo dos pasos:

Paso 1: crea la clase principal del juego

Para crear su propio juego basado en el motor de juego CodeGym, necesita crear una clase y hacer que amplíe la clase Game (com.codegym.engine.cell.Game). Esto le dará a su clase la capacidad de llamar a métodos en el motor del juego , y el motor podrá llamar a métodos de su clase . Ejemplo:

import com.codegym.engine.cell.Game;

public class MySuperGame extends Game {
  ...
}

Paso 2: invalidar el initialize()método

En el initialize()método, realiza todas las acciones necesarias para iniciar el juego: crear el campo de juego, crear todos los objetos del juego, etc. Solo necesita declarar este método en la clase que hereda la clase Juego. Ejemplo:

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
  }
}

El initialize()método es análogo al main()método. Es el punto de entrada desde el cual comienza a ejecutarse todo el código de tu juego.



3. Crear el campo de juego

Crear el campo de juego también es un proceso de dos pasos:

Paso 1: divide el campo de juego en celdas

El motor del juego divide todo el campo de juego en celdas. El tamaño mínimo es de 3×3 y el máximo de 100×100.

El tamaño del campo de juego es constante una vez creado. Las dimensiones horizontal y vertical no tienen que ser iguales. Por ejemplo, un ancho de 7 y una altura de 9:

Tenga en cuenta que la numeración de las celdas comienza en la esquina superior izquierda.

Para establecer el tamaño del campo de juego, use el void setScreenSize(int width, int height)método. Establece el tamaño del campo de juego. Sus parámetros son el número de celdas en las dimensiones horizontal ( width) y vertical ( height). Por lo general, se llama una vez cuando comienza el juego. Ejemplo:

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);
      ...
   }
}

Al escribir un juego, es posible que deba obtener el ancho y la altura actuales del campo de juego. Los métodos correspondientes son int getScreenWidth()y int getScreenHeight().

Paso 2: Activar/desactivar la cuadrícula (opcional)

Si no le gusta tener una cuadrícula negra que separe las celdas de su campo de juego, puede desactivarla.

El void showGrid(boolean isShow)método habilita/deshabilita la cuadrícula que separa las celdas. La cuadrícula se muestra de forma predeterminada. Para desactivarlo, llame a este método y páselo falsecomo argumento:

showGrid(false);

Resultado:

Para volver a encender la cuadrícula, llame al método de esta manera:

showGrid(true);

Resultado:



4. Programa primitivo

Escribamos un juego muy primitivo que use el motor de juego CodeGym. Hará 3 cosas:

  1. Dividirá el campo de juego en 9 celdas: 3×3
  2. Deshabilitará la cuadrícula (las líneas entre celdas)
  3. La celda central se pintará de azul y Xen ella se escribirá la letra.

El código final se ve así:

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);
   }
}

En este ejemplo, el campo de juego se establece en 3x3, la cuadrícula está apagada y se coloca una letra naranja a la mitad de la altura de la celda en la celda central con un fondo azul . Esto será lo primero que vea el jugador cuando comience el juego.X