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)に等しい座標で設定します。cellColorvalue

例:

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

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)背景色、テキスト、およびセルのテキストの色を、それぞれ 、 、および に等しい座標で設定し(x, y)ます。cellColorvaluetextColor

例:

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

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize);セルの背景色、テキスト、テキストの色、テキスト サイズを、それぞれ、、、および(x, y)に等しい座標で設定します。cellColorvaluetextColortextSize

例:

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


2. 色を扱う

CodeGym ゲーム エンジンには、Color148 色の一意の値を含む特別なタイプがあります。また、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 回実行する必要があります。
  1. 「実行」「構成の編集」を開く
  2. VM オプションの値として、次のように入力します。
    --module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base

    注意:

    IntelliJ IDEA の最近のバージョンでは、「VM オプション」フィールドはデフォルトでは表示されません。表示するには、ALT+Vを押します。

  3. 押す:適用OK
  4. ゲームを実行します。