1. माउससह कार्य करणे
गेम इंजिनमध्ये माउससह कार्य करण्याच्या दोन पद्धती आहेत:-
void onMouseLeftClick(int x, int y);
-
void onMouseRightClick(int x, int y);
Game
आणि तुम्हाला हवा असलेला कोणताही कोड जोडा. जेव्हा वापरकर्ता माउस बटणे क्लिक करतो तेव्हा गेम इंजिन त्यांना कॉल करेल.
-
onMouseLeftClick(int x, int y)
— जेव्हा डावे माउस बटण क्लिक केले जाते तेव्हा इंजिनद्वारे कॉल केले जाते. त्याचे पॅरामीटर्स प्ले फील्डच्या सेलचे निर्देशांक आहेत जिथे क्लिक झाले. वरच्या डाव्या सेलमध्ये निर्देशांक आहेत (0, 0). ही पद्धत वापरण्यासाठी तुम्हाला ओव्हरराइड करणे आवश्यक आहे. -
onMouseRightClick(int x, int y)
— उजवे माऊस बटण क्लिक केल्यावर कॉल केले जाते. ही पद्धत पद्धतीप्रमाणे कार्य करतेonMouseLeftClick(int x, int y)
.
import com.codegym.engine.cell.Color;
import com.codegym.engine.cell.Game;
import com.codegym.engine.cell.Key;
public class MySuperGame extends Game {
@Override
public void initialize() {
// Set the size of the playing field to 3x3
setScreenSize(3, 3);
// Paint the playing field white
for (int x = 0; x < 3; x++) {
for (int y = 0; y < 3; y++) {
setCellColor(x, y, Color.WHITE);
}
}
}
@Override
public void onMouseLeftClick(int x, int y) {
// Set "X" in the cell where the left mouse click occurred
setCellValue(x, y, "X");
}
@Override
public void onMouseRightClick(int x, int y) {
// Clear the cell where the right mouse click occurred
setCellValue(x, y, "");
}
}
2. कीबोर्डसह कार्य करणे
कीबोर्डसह कार्य करण्यासाठी गेम इंजिनमध्ये दोन पद्धती आहेत:-
void onKeyPress(Key key);
-
void onKeyReleased(Key key);
-
onKeyPress(Key key)
- कोणतीही कळ दाबल्यावर कॉल केला जातो. की पॅरामीटर दाबलेली की (किंवा Key.UNKNOWN) आहे. -
onKeyReleased(Key key)
- कोणतीही की सोडल्यावर कॉल केला जातो. की पॅरामीटर संबंधित की (किंवा Key.UNKNOWN) आहे.
import com.codegym.engine.cell.Color;
import com.codegym.engine.cell.Game;
import com.codegym.engine.cell.Key;
public class MySuperGame extends Game {
@Override
public void initialize() {
// Set the size of the playing field to 3x3
setScreenSize(3, 3);
// Paint the playing field white
for (int x = 0; x < 3; x++) {
for (int y = 0; y < 3; y++) {
setCellColor(x, y, Color.WHITE);
}
}
}
@Override
public void onKeyPress(Key key) {
// When the space bar is pressed, the center cell turns yellow
if (key == Key.SPACE) {
setCellColor(1, 1, Color.YELLOW);
}
}
@Override
public void onKeyReleased(Key key) {
// When the space bar is released, the center cell changes back to white
if (key == Key.SPACE) {
setCellColor(1, 1, Color.WHITE);
}
}
}
महत्वाचे! गेम इंजिनच्या वर्तमान आवृत्तीमध्ये, की प्रकारात नऊ मूल्यांचा मर्यादित संच आहे:मूल्य | वापरकर्त्याने की दाबली |
---|---|
की.एंटर | वापरकर्त्याने एंटर दाबले |
की.ESCAPE | वापरकर्त्याने Esc दाबले |
की.पॉज | वापरकर्त्याने विराम दाबला |
की.स्पेस | वापरकर्त्याने स्पेस दाबले |
की.लेफ्ट | वापरकर्त्याने डावी बाण की दाबली |
की.राईट | वापरकर्त्याने उजवी बाण की दाबली |
की.यूपी | वापरकर्त्याने अप अॅरो की दाबली |
की.डाउन | वापरकर्त्याने डाउन की दाबली |
की.अज्ञात | वापरकर्त्याने वरील व्यतिरिक्त एक की दाबली |
3. टाइमरसह कार्य करणे
बरेच गेम रिअल टाइममध्ये घडतात, म्हणजे वापरकर्त्याने काहीही केले नाही तरीही गेममध्ये घटना घडतात. तुम्हाला अशा गेमची अंमलबजावणी करण्यास सक्षम करण्यासाठी, आम्ही गेम इंजिनमध्ये टायमर जोडला आहे. हे असे काहीतरी कार्य करते: तुम्ही टाइमर चालू करा आणि टाइमर मध्यांतर सेट करा. उदाहरणार्थ, 500 मिलीसेकंद. त्यानंतर, प्रत्येक अर्धा सेकंद गेम इंजिनonTurnTimer()
पद्धत कॉल करते. पुन्हा पुन्हा कायमचे — टाइमर बंद होईपर्यंत. मग तुम्ही टायमर कसा वापराल?
-
टायमर चालू करा.
हे करण्यासाठी, एक विशेष पद्धत आहे. ही पद्धत वितर्क म्हणून कॉल्समधील अंतर मिलिसेकंदमध्ये घेते (1 मिलीसेकंद = 1/1000 सेकंद). तुम्हाला फक्त एकदाच कॉल करणे आवश्यक आहे, आणि गेम इंजिन प्रत्येक वेळी Ms मिलीसेकंदांनी पद्धत कॉल करणे सुरू करेल.
void setTurnTimer(int timeMs)
onTurn()
-
onTurn(int) पद्धत ओव्हरराइड करा.
हे करण्यासाठी, तुम्हाला वारसा मिळालेल्या वर्गातील पद्धत घोषित करणे आवश्यक आहे . ही पद्धत गेम इंजिनद्वारे कॉल केली जाईल. इतकेच काय, प्रत्येक कॉलसह गेम इंजिन कॉलसाठी अनुक्रमिक अभिज्ञापक (1, 2, 3, …) पद्धतीकडे जाईल.
void onTurn(int step)
Game
-
टाइमर बंद करा.
टाइमरची यापुढे आवश्यकता नसल्यास, उदाहरणार्थ, वापरकर्त्याने गेम पूर्ण केल्यावर, तुम्ही तो बंद करू शकता. हे करण्यासाठी, आपल्याला फक्त पद्धत कॉल करण्याची आवश्यकता आहे.
stopTurnTimer()
-
टाइमर वेग वाढवा किंवा बदला.
काही गेममध्ये, ज्या दराने घटना घडतात त्याचा वेग सतत वाढत असतो, त्यामुळे आमच्या टाइमरचा वेग वाढवणे (कॉल्समधील वेळ कमी करणे) सोयीचे असते. काहीही सोपे असू शकत नाही:
setTurnTimer(int timeMs)
पुन्हा एकदा नवीन मूल्यासह कॉल करा आणि कॉलमधील वेळonTurn()
बदलेल.
import com.codegym.engine.cell.Color;
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
…
@Override
public void initialize() {
// Create a playing field that is 3 cells x 3 cells
setScreenSize(3, 3);
showGrid(false);
setCellValueEx(1, 1, Color.BLUE, "X", Color.ORANGE, 50);
setTurnTimer(500); // Turn on the timer, the interval between calls is 500ms.
}
@Override
public void onTurn(int step) {
if(step == 100) {
stopTurnTimer(); // If 100 calls have been made, turn off the timer
}
if (step % 2 == 1) {
// If this call is odd, set the cell background to red
setCellColor(1, 1, Color.RED);
}
else {
// If this call is even, set the cell background to blue
setCellColor(1, 1, Color.BLUE);
}
}
…
}
या साध्या उदाहरणात, आम्ही 3 सेल x 3 सेल असे फील्ड तयार केले आहे. मग आम्ही एक टाइमर सुरू केला जो प्रत्येक अर्ध्या सेकंदाला पद्धत कॉल करेल onTurn()
. प्रत्येक अर्ध्या सेकंदाला, सेलचा रंग बदलेल, परंतु त्याची सामग्री बदलणार नाही. 50 सेकंदांनंतर, रंग यापुढे बदलणार नाही. आतासाठी एवढेच! तुम्हाला "गेम" विभागाबद्दल अधिक जाणून घ्यायचे असल्यास, येथे काही उपयुक्त दस्तऐवज आहेत जे मदत करू शकतात:
GO TO FULL VERSION