1. 与运动场的细胞一起工作

很高兴我们可以将运动场划分为单元格。但是我们能用细胞本身做什么呢?

对于运动场的每个单元格,我们可以设置:

  • 单元格颜色(单元格的背景颜色);
  • 文本(可以是文本或数字);
  • 文字颜色;
  • 文本大小占单元格大小的百分比。

让我们考虑使用运动场单元格的方法:

void setCellColor(int x, int y, Color color)(x, y)设置坐标等于 的单元格的颜色color

例子:

setCellColor(0, 0, Color.RED);
setCellColor(3, 6, Color.BLACK);
setCellColor(6, 8, Color.NONE);

Color getCellColor(int x, int y)返回坐标为 的单元格的颜色(x, y)

例子:

Color myColor = getCellColor(2, 0);

void setCellValue(int x, int y, String value)将文本分配String value给坐标为 的单元格(x, y)

例子:

setCellValue(3, 3, "text");
setCellValue(0, 8, "W");
setCellValue(4, 1, "2222");
setCellValue(6, 6, "");

String getCellValue(int x, int y)返回坐标为 的单元格中包含的文本(x, y)

例子:

String s = getCellValue(3, 3);
System.out.println(getCellValue(4, 1));

void setCellTextSize(int x, int y, int size)使用坐标设置单元格中文本的大小(x, y),其中size文本高度占单元格高度的百分比。

例子:

setCellTextSize(2, 0, 70); // 70% of the cell height

int getCellTextSize(int x, int y)返回坐标为 的单元格中内容的大小(x, y)

例子:

int size = getCellTextSize(2 , 0);

void setCellNumber(int x, int y, int value)将数字分配int value给坐标为 的单元格(x, y)

例子:

setCellNumber(3, 3, 40);
setCellNumber(0, 8, -8);
setCellNumber(4, 1, 2222);
setCellNumber(6, 6, 0);

int getCellNumber(int x, int y)返回坐标为 的单元格中包含的数字(x, y)。如果单元格不包含数字,则返回 0。

例子:

int i = getCellNumber(3, 3);
System.out.println(getCellNumber(4, 1));

void setCellTextColor(int x, int y, Color color)设置坐标为 的单元格内容(文本)的颜色(x, y)

例子:

setCellTextColor(2, 1, Color.GREEN);
setCellTextColor(0, 1, Color.NONE);

Color getCellTextColor(int x, int y)返回坐标为 的单元格内容(文本)的颜色(x, y)

例子:

Color textColor = getCellTextColor(1, 3);

为了您的方便,有多种setCellValueEx()具有不同参数集的方法:

void setCellValueEx(int x, int y, Color cellColor, String value)分别设置坐标(x, y)等于cellColor和 的单元格的背景颜色和文本value

例子:

setCellValueEx(0, 2, Color.BLUE, "56");

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)分别设置坐标(x, y)等于cellColorvalue和 的单元格的背景颜色、文本和文本颜色textColor

例子:

setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN);

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize);分别设置坐标(x, y)cellColor、 、和 的单元格的背景颜色、value文本、文本颜色和文本大小。textColortextSize

例子:

setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN, 70);


2. 使用颜色

CodeGym 游戏引擎有一个特殊Color类型,其中包含 148 种颜色的唯一值。它还具有NONE表示没有颜色的特殊值。

使用颜色的示例

Color myColor = Color.WHITE;  // The color white is assigned to the myColor variable.
Color redColor = Color.RED; // The color red is assigned to the redColor variable.
Color blueColor = Color.BLUE; // The color blue is assigned to the blueColor variable.

您可以使用以下命令将单元格着色为红色:

setCellColor(0, 2, Color.RED);

您可以使用如下命令检查单元格是否为特定颜色:

if (getCellColor(0,2) == Color.GREEN)
{
}

有时您可能需要获取包含每种可能颜色的数组。为此,请使用该values()方法。

例子:

// An array containing every available color is assigned to the colors variable.
Color[] colors = Color.values();

在调色板中获取颜色的索引非常容易——只需使用以下ordinal()方法:

Color color = Color.RED;
int redIndex = color.ordinal(); // Index of the color red

int blueIndex = Color.BLUE.ordinal(); // Index of the color blue

您还可以通过其索引轻松获取颜色:

 // The color whose index is 10 in the Color enum is assigned to the color variable.
Color color = Color.values()[10];


3.对话框

在游戏结束时,我们需要让玩家知道他或她是赢了还是输了。对于这种情况和其他情况,CodeGym 游戏引擎有一种特殊的void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)方法,它会显示一个带有消息的对话框message
这个方法的参数是:

  • cellColor是对话框的背景颜色
  • message是消息的文本
  • textColor是消息文本的颜色
  • textSize是消息文本的大小

如果用户按下空格键或用鼠标单击对话框,对话框将自行关闭。

调用此方法的示例:

// Display a dialog box with a message
showMessageDialog(Color.BLACK, "EPIC FAIL", Color.RED, 80);


4.实用方法

在编写游戏时,您会经常使用随机数。为了更容易获得随机数,您可以使用游戏引擎的实用方法:

int getRandomNumber(int max)0返回一个从到包含的随机数(max–1)

int getRandomNumber(int min, int max)min返回一个从到包含的随机数(max–1)


5. JDK 11+

从 IntelliJ IDEA 运行程序时,继承 Game 类的类可能会产生以下错误:

Error: JavaFX runtime components are missing, and are required to run this application

在这种情况下,对于每个此类,您需要执行一次这些步骤:
  1. 打开运行编辑配置
  2. 对于VM options的值,输入以下内容:
    --module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base

    注意力:

    在最新版本的 IntelliJ IDEA 中,默认情况下不显示“VM 选项”字段。要显示它,请按ALT+V

  3. 按:应用确定
  4. 运行游戏。