1. Paggawa gamit ang mga cell ng playing field

Napakahusay na maaari nating hatiin ang larangan ng paglalaro sa mga cell. Ngunit ano ang magagawa natin sa mga selula mismo?

Para sa bawat cell ng playing field, maaari naming itakda ang:

  • kulay ng cell (kulay ng background ng cell);
  • text (maaaring text o numero ito);
  • Kulay ng teksto;
  • laki ng teksto bilang isang porsyento ng laki ng cell.

Isaalang-alang natin ang mga pamamaraan para sa pagtatrabaho sa mga cell ng larangan ng paglalaro:

void setCellColor(int x, int y, Color color)nagtatakda ng kulay ng cell na may mga coordinate (x, y)na katumbas ng color.

Mga halimbawa:

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

Color getCellColor(int x, int y)ibinabalik ang kulay ng cell na may mga coordinate (x, y).

Halimbawa:

Color myColor = getCellColor(2, 0);

void setCellValue(int x, int y, String value)itinatalaga ang teksto sa String valuecell na may mga coordinate (x, y).

Mga halimbawa:

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

String getCellValue(int x, int y)ibinabalik ang tekstong nakapaloob sa cell na may mga coordinate (x, y).

Mga halimbawa:

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

void setCellTextSize(int x, int y, int size)itinatakda ang laki ng teksto sa cell na may mga coordinate (x, y), kung saan sizeang taas ng teksto bilang isang porsyento ng taas ng cell.

Halimbawa:

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

int getCellTextSize(int x, int y)ibinabalik ang laki ng nilalaman sa cell na may mga coordinate (x, y).

Halimbawa:

int size = getCellTextSize(2 , 0);

void setCellNumber(int x, int y, int value)nagtatalaga ng numero int valuesa cell na may mga coordinate (x, y).

Mga halimbawa:

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

int getCellNumber(int x, int y)ibinabalik ang numerong nakapaloob sa cell na may mga coordinate (x, y). Kung ang cell ay hindi naglalaman ng isang numero, ito ay nagbabalik ng 0.

Mga halimbawa:

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

void setCellTextColor(int x, int y, Color color)nagtatakda ng kulay ng nilalaman (teksto) ng cell na may mga coordinate (x, y).

Mga halimbawa:

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

Color getCellTextColor(int x, int y)ibinabalik ang kulay ng nilalaman (teksto) ng cell na may mga coordinate (x, y).

Halimbawa:

Color textColor = getCellTextColor(1, 3);

Para sa iyong kaginhawahan, maraming setCellValueEx()mga pamamaraan na may iba't ibang hanay ng mga parameter:

void setCellValueEx(int x, int y, Color cellColor, String value)itinatakda ang kulay ng background at teksto ng cell na may mga coordinate (x, y)na katumbas ng cellColorat value, ayon sa pagkakabanggit.

Halimbawa:

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

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)itinatakda ang kulay ng background, teksto, at kulay ng teksto ng cell na may mga coordinate (x, y)na katumbas ng cellColor, value, at textColor, ayon sa pagkakabanggit.

Halimbawa:

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

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize);itinatakda ang kulay ng background, teksto, kulay ng teksto, at laki ng teksto ng cell na may mga coordinate (x, y)na katumbas ng cellColor, value, textColor, at textSize, ayon sa pagkakabanggit.

Halimbawa:

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


2. Paggawa gamit ang kulay

Ang CodeGym game engine ay may espesyal Colorna uri na naglalaman ng mga natatanging halaga para sa 148 na kulay. Mayroon din itong espesyal NONEna halaga na kumakatawan sa kawalan ng kulay.

Mga halimbawa ng pagtatrabaho sa kulay

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.

Maaari mong kulayan ang isang cell na pula gamit ang command:

setCellColor(0, 2, Color.RED);

Maaari mong suriin kung ang isang cell ay isang tiyak na kulay na may isang command tulad ng:

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

Minsan maaaring kailanganin mong kumuha ng hanay ng bawat posibleng kulay. Upang gawin ito, gamitin ang values()pamamaraan.

Halimbawa:

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

Ang pagkuha ng index ng kulay sa color palette ay napakadaling gawin — gamitin lang ang ordinal()paraan:

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

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

Madali ka ring makakakuha ng kulay sa pamamagitan ng index nito:

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


3. Mga dialog box

Sa pagtatapos ng laro, kailangan nating ipaalam sa manlalaro kung nanalo o natalo siya. Para dito at sa iba pang okasyon, ang CodeGym game engine ay may espesyal na void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)paraan, na nagpapakita ng dialog box na may messagemensahe.
Ang mga parameter ng pamamaraang ito ay:

  • cellColoray ang kulay ng background ng dialog box
  • messageay ang teksto ng mensahe
  • textColoray ang kulay ng teksto ng mensahe
  • textSizeay ang laki ng teksto ng mensahe

Ang dialog box ay magsasara mismo kung pinindot ng user ang space bar o mag-click sa dialog box gamit ang mouse.

Halimbawa ng pagtawag sa paraang ito:

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


4. Mga pamamaraan ng utility

Kapag nagsusulat ng mga laro, madalas kang gagamit ng mga random na numero. Upang gawing mas madali ang pagkuha ng mga random na numero, maaari mong gamitin ang mga pamamaraan ng utility ng game engine:

int getRandomNumber(int max)nagbabalik ng random na numero mula 0sa (max–1)inclusive.

int getRandomNumber(int min, int max)nagbabalik ng random na numero mula minsa (max–1)inclusive.


5. JDK 11+

Kapag pinapatakbo ang iyong programa mula sa IntelliJ IDEA, ang isang klase na nagmamana ng klase ng Laro ay maaaring makabuo ng sumusunod na error:

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

Sa kasong ito, para sa bawat klase, kailangan mong gawin ang mga hakbang na ito nang isang beses:
  1. Buksan ang RunEditConfiguration
  2. Para sa halaga ng mga opsyon sa VM , ilagay ang sumusunod:
    --module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base

    PANSIN:

    Sa mga kamakailang bersyon ng IntelliJ IDEA, ang field na "mga opsyon sa VM" ay hindi ipinapakita bilang default. Upang ipakita ito, pindutin ang ALT+V

  3. Pindutin ang: IlapatOK
  4. Patakbuhin ang laro.