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 value
cell 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 size
ang 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 value
sa 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 cellColor
at 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 Color
na uri na naglalaman ng mga natatanging halaga para sa 148 na kulay. Mayroon din itong espesyal NONE
na 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 message
mensahe.
Ang mga parameter ng pamamaraang ito ay:
cellColor
ay ang kulay ng background ng dialog boxmessage
ay ang teksto ng mensahetextColor
ay ang kulay ng teksto ng mensahetextSize
ay 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 0
sa (max–1)
inclusive.
int getRandomNumber(int min, int max)
nagbabalik ng random na numero mula min
sa (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:
- Buksan ang Run → EditConfiguration
- 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
- Pindutin ang: Ilapat → OK
- Patakbuhin ang laro.
GO TO FULL VERSION