1. 在游戏引擎上编写你的第一个游戏

在实施任何电脑游戏时,都分为三个阶段:
- 初始化游戏。这包括各种准备动作:设置比赛场地的大小并绘制它,在初始位置创建和设置游戏对象,以及需要在游戏开始时执行的任何其他动作。
- 玩游戏。这可能包括移动游戏对象、玩家动作、获得的积分,以及必须定期执行或响应按钮点击和按键操作的任何其他动作。
- 结束游戏。这可能包括停止动画、赢/输消息以及需要在游戏结束时执行的任何其他操作。
我们现在将按顺序完成所有三个阶段,看看 CodeGym 游戏引擎如何帮助简化此过程。
2. 初始化游戏
当您使用 CodeGym 游戏引擎时,游戏初始化仅包含两个步骤:
第 1 步:创建游戏的主类
要基于 CodeGym 游戏引擎创建您自己的游戏,您需要创建一个类并使其扩展 Game 类(com.codegym.engine.cell.Game)。这将使您的类能够调用游戏引擎上的方法,而引擎将能够调用您类的方法。例子:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
...
}
第 2 步:覆盖initialize()
方法
在该initialize()
方法中,您执行开始游戏所需的所有操作:创建比赛场地、创建所有游戏对象等。您只需在继承 Game 类的类中声明此方法即可。例子:
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
}
}
该initialize()
方法类似于该main()
方法。它是所有游戏代码开始执行的入口点。
3. 创造竞争环境
创建竞争环境也是一个两步过程:
第 1 步:将运动场划分为单元格
游戏引擎将整个比赛场地划分为单元格。最小尺寸为 3×3,最大尺寸为 100×100。
运动场的大小一旦创建就保持不变。水平和垂直尺寸不必相同。例如,宽度为 7,高度为 9:
请注意,单元格编号从左上角开始。
要设置比赛场地的大小,请使用void setScreenSize(int width, int height)
方法。它设置了比赛场地的大小。width
它的参数是水平 ( ) 和垂直 ( ) 维度中的单元格数height
。它通常在游戏开始时被调用一次。例子:
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);
...
}
}
在编写游戏时,您可能需要获取当前游戏区域的宽度和高度。对应的方法是int getScreenWidth()
和int getScreenHeight()
。
第 2 步:打开/关闭网格(可选)
如果您不喜欢用黑色网格分隔运动场的单元格,则可以将其关闭。
该void showGrid(boolean isShow)
方法启用/禁用分隔单元格的网格。默认显示网格。要关闭它,请调用此方法并false
作为参数传入:
showGrid(false);
结果:
要重新打开网格,请像这样调用方法:
showGrid(true);
结果:
4.原始程序
让我们编写一个使用 CodeGym 游戏引擎的非常原始的游戏。它会做三件事:
- 它将运动场分成 9 个单元格:3×3
- 它将禁用网格(单元格之间的线)
- 中央单元格将被涂成蓝色,字母
X
将写在其中。
最终代码如下所示:
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);
}
}
在此示例中,运动场设置为 3x3,网格被关闭,单元格高度一半的橙色字母被放置在具有蓝色背景的中心单元格中。这将是玩家在游戏开始时看到的第一件事。X
GO TO FULL VERSION