CodeGym /Java Blog /यादृच्छिक /CodeGym वर गेम विभाग: गेम इंजिन
John Squirrels
पातळी 41
San Francisco

CodeGym वर गेम विभाग: गेम इंजिन

यादृच्छिक या ग्रुपमध्ये प्रकाशित केले
CodeGym मधील "गेम" हा एक नवीन विभाग आहे ज्यामध्ये लोकप्रिय संगणक गेम लिहिणे समाविष्ट आहे. दिसते त्यापेक्षा ते तयार करणे सोपे आहे: प्रत्येक प्रकल्प वीस उपकार्यांमध्ये विभागलेला आहे. चरण-दर-चरण कार्ये पूर्ण करणे, तुम्ही तुमचा स्वतःचा गेम लिहाल आणि नंतर तुम्ही अनन्य वैशिष्ट्ये जोडू शकता आणि मित्रांसह सामायिक करू शकता. कोडजिमवरील "गेम्स" विभाग: गेम इंजिन - १गेम साधे कोडजिम गेम इंजिन वापरतात . या लेखात, आम्ही त्याची मुख्य वैशिष्ट्ये आणि गेम-लेखन प्रक्रिया कशी दिसते याचे वर्णन करू.

1. परिचय

विकसकासाठी, संगणक गेमच्या अंमलबजावणीसाठी तीन टप्पे आहेत:
  1. गेम इनिशिएलायझेशन - या स्टेजमध्ये तयारीच्या क्रियांचा समावेश होतो: खेळण्याच्या मैदानाचा आकार सेट करणे, खेळाचे क्षेत्र रेखाटणे, गेम ऑब्जेक्ट्स तयार करणे आणि त्यांना त्यांच्या सुरुवातीच्या स्थितीत ठेवणे आणि इतर क्रिया ज्या खेळाच्या सुरूवातीस केल्या पाहिजेत.

  2. खेळ प्रक्रिया. या स्टेजमध्ये गेम ऑब्जेक्ट्स, प्लेअर अॅक्शन्स, स्कोअर ठेवणे आणि इतर क्रियांचा समावेश होतो ज्या विशिष्ट वारंवारतेवर किंवा बटणे दाबल्यावर केल्या पाहिजेत.

  3. खेळ पूर्ण. या स्टेजमध्ये अॅनिमेशन थांबवणे, विजय किंवा पराभवाचा अहवाल देणे आणि गेमच्या शेवटी केल्या जाणाऱ्या इतर क्रियांचा समावेश होतो.

2. गेम आरंभ करणे

गेम इनिशिएलायझेशनमध्ये फक्त दोन पायऱ्या असतात: पायरी 1: गेमचा मुख्य वर्ग तयार करा. CodeGym गेम इंजिन वापरून तुमचा स्वतःचा गेम विकसित करण्यासाठी, तुम्हाला क्लास तयार करणे आवश्यक आहे जो क्लासचा वारसा घेतो Game(com.codegym.engine.cell.Game). हे तुमच्या वर्गाला गेम इंजिनच्या पद्धतींना कॉल करण्याची क्षमता देते आणि इंजिनला तुमच्या पद्धती कॉल करण्याची क्षमता देते. उदाहरणार्थ:

import com.codegym.engine.cell.Game;

public class MySuperGame extends Game {
    ...
}
पायरी 2: इनिशियलाइज पद्धत () ओव्हरराइड करा. गेम सुरू करण्‍यासाठी आवश्‍यक सर्व क्रिया या पद्धतीत होतील: खेळाचे मैदान तयार करणे, गेम ऑब्‍जेक्‍ट तयार करणे, इ. तुम्‍हाला ही पद्धत केवळ वर्गात वारसाहक्काने घोषित करायची आहे Game. उदाहरणार्थ:

import com.codegym.engine.cell.Game;

public class MySuperGame extends Game {

    @Override
    public void initialize() {
        // Here we perform all actions to initialize the game and its objects
    }
}
पद्धत या पद्धतीशी initialize()एकरूप आहे main(): गेमसाठी लिहिलेल्या सर्व कोडसाठी हा प्रारंभ बिंदू आहे.

3. खेळण्याचे मैदान तयार करणे

खेळाचे मैदान तयार करण्यात देखील फक्त दोन पायऱ्या असतात. पायरी 1: खेळण्याचे मैदान सेलमध्ये विभाजित करा. संपूर्ण खेळाचे क्षेत्र गेम इंजिनद्वारे पेशींमध्ये विभागलेले आहे. किमान आकार 3x3 आहे; कमाल 100x100 आहे. गेम स्क्रीनचे परिमाण स्थिर आहेत. हे वेगवेगळ्या पेशींच्या संख्येत विभागले जाऊ शकते. उदाहरणार्थ, 7 सेल रुंद बाय 9 सेल्स उंच: कोडजिमवरील "गेम्स" विभाग: गेम इंजिन - 2लक्षात ठेवा की सेल वरच्या डाव्या कोपर्यातून सुरू होऊन क्रमांकित आहेत. खेळण्याच्या मैदानाचा आकार सेट करण्यासाठी, void setScreenSize(int width, int height)पद्धत वापरा. हे खेळण्याच्या मैदानाचा आकार सेट करते. त्याचे पॅरामीटर्स क्षैतिज (रुंदी) आणि अनुलंब (उंची) सेलची संख्या दर्शवतात. खेळ सुरू झाल्यावर सहसा एकदाच बोलावले जाते. उदाहरणार्थ:

import com.codegym.engine.cell.Game;

public class MySuperGame extends Game {

    @Override
    public void initialize() {
       // Set the field size to 7 cells x 9 cells
       setScreenSize(7, 9);
        ...
    }
}
गेम लिहिताना, तुम्हाला खेळण्याच्या मैदानाची सध्याची रुंदी आणि उंची मिळणे आवश्यक असू शकते. हे करण्यासाठी, int getScreenWidth()आणि int getScreenHeight()पद्धती उपयोगी येतील. पायरी 2: ग्रिड चालू किंवा बंद करा (पर्यायी). खेळण्याच्या मैदानावरील सेल वेगळे करणारी काळी ग्रिड तुम्हाला आवडत नसल्यास, तुम्ही ते बंद करू शकता. पद्धत void showGrid(boolean isShow)ग्रिड चालू आणि बंद करते. डीफॉल्टनुसार, ग्रिड प्रदर्शित केला जातो. ते बंद करण्यासाठी, युक्तिवाद म्हणून या पद्धतीला खोट्याने कॉल करा:

showGrid(false);
परिणाम: कोडजिमवरील "गेम्स" विभाग: गेम इंजिन - 3ग्रिड पुन्हा चालू करण्यासाठी, कॉल करा:

showGrid(true);

4. एक आदिम कार्यक्रम

येथे प्रोग्रामचे उदाहरण आहे:

public class MySuperGame extends Game {

    @Override
    public void initialize() {

        // Create a playing field that is 3 cells x 3 cells
        setScreenSize(3, 3);
        // Turn off the grid
        showGrid(false);
        // Change the background of the center cell to blue, and display an "X" in it.
        setCellValueEx(1, 1, Color.BLUE, "X", Color.ORANGE, 50);
    }
}
या उदाहरणात, गेम फील्ड 3x3 वर सेट केले आहे, ग्रिड बंद आहे आणि मध्यभागी सेलमधील निळ्या पार्श्वभूमीवर सेल आकाराचा अर्धा नारिंगी "X" सेट केला आहे. खेळ सुरू झाल्यावर खेळाडूला दिसणारी ही पहिली गोष्ट असेल.

5. खेळण्याच्या क्षेत्राच्या पेशींसह कार्य करणे

आपण खेळण्याचे क्षेत्र पेशींमध्ये विभागू शकतो हे खरे आहे, परंतु आपण स्वतः पेशींचे काय करू शकतो? तुम्ही खेळण्याच्या मैदानाच्या प्रत्येक सेलसाठी खालील गुणधर्म सेट करू शकता:
  • सेल रंग (सेल पार्श्वभूमी रंग);
  • मजकूर (मजकूर किंवा संख्या);
  • मजकूर रंग;
  • सेल आकाराची टक्केवारी म्हणून मजकूर आकार.
खेळण्याच्या क्षेत्राच्या पेशींसह कार्य करण्याच्या पद्धती पाहू :
  1. void setCellColor(int x, int y, Color color)— कोऑर्डिनेट्ससह सेलचा रंग सेट करते (x, y):

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

  2. Color getCellColor(int x, int y)— कोऑर्डिनेट्ससह सेलचा रंग परत करतो (x, y):

    
    Color myColor = getCellColor(2, 0);
    

  3. void setCellValue(int x, int y, String value)— मूल्य पॅरामीटरमधील स्ट्रिंगच्या समान निर्देशांक (x, y) सह सेलचा मजकूर सेट करते:

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

  4. String getCellValue(int x, int y)— कोऑर्डिनेट्स (x, y) सह सेलमध्ये असलेला मजकूर परत करतो:

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

  5. void setCellTextSize(int x, int y, int size)— कोऑर्डिनेट्स (x, y) सह सेलच्या सामग्रीचा आकार सेट करते. आकार पॅरामीटर म्हणजे सेलच्या उंचीची टक्केवारी म्हणून मजकूराची उंची:

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

  6. int getCellTextSize(int x, int y)— कोऑर्डिनेट्स (x, y) सह सेलच्या सामग्रीचा आकार परत करतो:

    
    int size = getCellTextSize(2 , 0);
    

  7. void setCellNumber(int x, int y, int value)— मूल्य पॅरामीटरमधील संख्येच्या समान निर्देशांक (x, y) सह सेलचा मजकूर सेट करते:

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

  8. int getCellNumber(int x, int y)— कोऑर्डिनेट्स (x, y) सह सेलमध्ये असलेली संख्या मिळवते. सेलमध्ये संख्या नसल्यास, 0 मिळवते:

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

  9. void setCellTextColor(int x, int y, Color color)— कोऑर्डिनेट्स (x, y) सह सेलच्या सामग्रीचा (मजकूर) रंग सेट करते:

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

  10. Color getCellTextColor(int x, int y)— निर्देशांक (x, y) सह सेलच्या सामग्रीचा (मजकूर) रंग परत करतो:

    
    Color textColor = getCellTextColor(1, 3);
    
सोयीसाठी, setCellValueEx()पॅरामीटर्सच्या विविध संचांसह अनेक पद्धती आहेत:
  1. void setCellValueEx(int x, int y, Color cellColor, String value)— कोऑर्डिनेट्स (x, y) सह सेलचा पार्श्वभूमी रंग (cellColor) आणि सामग्री (मूल्य) सेट करते:

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

  2. void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)— कोऑर्डिनेट्स (x, y) सह सेलचा पार्श्वभूमी रंग (cellColor), सामग्री (मूल्य), आणि मजकूर रंग (टेक्स्ट कलर) सेट करते:

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

  3. void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize)— पार्श्वभूमी रंग (cellColor), सामग्री (मूल्य), मजकूर रंग (टेक्स्ट कलर), आणि निर्देशांक (x, y) सह सेलचा मजकूर आकार (टेक्स्ट साइज) सेट करते:

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

6. रंगासह कार्य करणे

Color enumगेम इंजिनमधील रंगांसाठी जबाबदार आहे . यात 148 रंगांसाठी अद्वितीय मूल्ये आहेत. यात एक विशेष मूल्य (NONE) देखील आहे जे कोणत्याही रंगाचे प्रतिनिधित्व करत नाही. रंगासह कार्य करण्याचे येथे एक उदाहरण आहे:

Color myColor = Color.WHITE;  // The myColor variable is set to white.
Color redColor = Color.RED;  // The redColor variable is set to red.
Color blueColor = Color.BLUE;  // The blueColor variable is set to light blue.
काहीवेळा आपल्याला सर्व विद्यमान रंगांची अॅरे मिळण्याची आवश्यकता असू शकते. हे करण्यासाठी, values()पद्धत वापरा. उदाहरणार्थ:

Color[] colors = Color.values();  // The colors variable is assigned an array containing all available colors.
पॅलेटमध्ये रंगाची अनुक्रमणिका मिळवणे खूप सोपे आहे:

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

int blueIndex = Color.BLUE.ordinal();  // Index of blue
आपण त्याच्या निर्देशांकानुसार रंग देखील मिळवू शकता:

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

7. डायलॉग बॉक्स

खेळाच्या शेवटी, तुम्हाला खेळाडूला विजय किंवा पराभवाचा अहवाल देणे आवश्यक आहे. हे करण्यासाठी, गेम स्क्रीनवर डायलॉग बॉक्स प्रदर्शित करणारी एक विशेष पद्धत आहे:

void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)
येथे:
  • cellColorडायलॉग बॉक्सचा पार्श्वभूमी रंग आहे;
  • messageसंदेशाचा मजकूर आहे;
  • textColorसंदेश मजकूराचा रंग आहे;
  • textSizeसंदेशाच्या मजकुराचा आकार आहे.
वापरकर्त्याने स्पेस बार दाबल्यास डायलॉग बॉक्स स्वतःच बंद होतो.

8. उपयुक्तता पद्धती

गेम लिहिताना, यादृच्छिक संख्यांचा भरपूर वापर केला जातो. यादृच्छिक क्रमांक मिळवणे सोपे करण्यासाठी, आपण गेम इंजिनद्वारे प्रदान केलेल्या खालील उपयुक्तता पद्धती वापरू शकता:
  1. int getRandomNumber(int max)— 0 ते (कमाल-1) समावेशी यादृच्छिक पूर्णांक मिळवते.

  2. int getRandomNumber(int min, int max)— किमान ते (कमाल-१) समावेशक यादृच्छिक पूर्णांक मिळवते.

आतासाठी एवढेच! तुम्हाला "गेम" विभागाबद्दल अधिक जाणून घ्यायचे असल्यास, येथे काही उपयुक्त दस्तऐवज आहेत जे मदत करू शकतात:
टिप्पण्या
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION