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)
ます。cellColor
value
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
textColor
textSize
例:
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 回実行する必要があります。
- 「実行」 → 「構成の編集」を開く
- VM オプションの値として、次のように入力します。
--module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base
注意:
IntelliJ IDEA の最近のバージョンでは、「VM オプション」フィールドはデフォルトでは表示されません。表示するには、ALT+Vを押します。
- 押す:適用→ OK
- ゲームを実行します。