CodeGym/Java Blog/சீரற்ற/CodeGym இல் கேம்ஸ் பிரிவு: கேம் என்ஜின்
John Squirrels
நிலை 41
San Francisco

CodeGym இல் கேம்ஸ் பிரிவு: கேம் என்ஜின்

சீரற்ற குழுவில் வெளியிடப்பட்டது
members
CodeGym வழங்கும் "கேம்ஸ்" என்பது பிரபலமான கணினி கேம்களை எழுதுவதை உள்ளடக்கிய பெரிய பணிகளைக் கொண்ட புதிய பிரிவாகும். அவை தோன்றுவதை விட உருவாக்க எளிதானது: ஒவ்வொரு திட்டமும் இருபது துணைப் பணிகளாக பிரிக்கப்பட்டுள்ளது. படிப்படியாக பணிகளை முடிப்பதன் மூலம், உங்கள் சொந்த விளையாட்டை எழுதுவீர்கள், பின்னர் நீங்கள் தனிப்பட்ட அம்சங்களைச் சேர்த்து அதை நண்பர்களுடன் பகிர்ந்து கொள்ளலாம். CodeGym இல் "கேம்ஸ்" பிரிவு: கேம் என்ஜின் - 1கேம்கள் எளிய கோட்ஜிம் கேம் எஞ்சினைப் பயன்படுத்துகின்றன . இந்தக் கட்டுரையில், அதன் முக்கிய அம்சங்களையும் , கேம் எழுதும் செயல்முறை எப்படி இருக்கும் என்பதையும் விவரிப்போம் .

1. அறிமுகம்

டெவலப்பருக்கு, கணினி விளையாட்டை செயல்படுத்த மூன்று நிலைகள் உள்ளன:
  1. விளையாட்டு துவக்கம் - இந்த கட்டத்தில் ஆயத்த நடவடிக்கைகள் உள்ளன: ஆடுகளத்தின் அளவை அமைத்தல், ஆடுகளத்தை வரைதல், விளையாட்டு பொருட்களை உருவாக்கி அவற்றின் ஆரம்ப நிலைகளில் வைப்பது மற்றும் விளையாட்டின் தொடக்கத்தில் செய்ய வேண்டிய பிற செயல்கள்.

  2. விளையாட்டு செயல்முறை. இந்த கட்டத்தில் நகரும் விளையாட்டுப் பொருள்கள், பிளேயர் செயல்கள், ஸ்கோரைப் பேணுதல் மற்றும் ஒரு குறிப்பிட்ட அதிர்வெண்ணில் அல்லது பொத்தான்களை அழுத்தும் போது செய்ய வேண்டிய பிற செயல்கள் ஆகியவை அடங்கும்.

  3. விளையாட்டு நிறைவு. இந்த கட்டத்தில் அனிமேஷனை நிறுத்துதல், வெற்றி அல்லது தோல்வியைப் புகாரளித்தல் மற்றும் விளையாட்டின் முடிவில் செய்ய வேண்டிய பிற செயல்கள் ஆகியவை அடங்கும்.

2. விளையாட்டு துவக்கம்

விளையாட்டின் துவக்கம் இரண்டு படிகளை மட்டுமே கொண்டுள்ளது: படி 1: விளையாட்டின் முக்கிய வகுப்பை உருவாக்கவும். CodeGym கேம் இன்ஜினைப் பயன்படுத்தி உங்கள் சொந்த விளையாட்டை உருவாக்க, வகுப்பை (com.codegym.engine.cell.Game) பெறக்கூடிய வகுப்பை உருவாக்க வேண்டும் 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 செல்கள் உயரம்: CodeGym இல் "கேம்ஸ்" பிரிவு: கேம் என்ஜின் - 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);
முடிவு: CodeGym இல் "கேம்ஸ்" பிரிவு: கேம் என்ஜின் - 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) அமைக்கிறது:

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

  2. void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)- கலத்தின் பின்னணி நிறம் (செல்கலர்), உள்ளடக்கங்கள் (மதிப்பு) மற்றும் உரை வண்ணம் (உரை வண்ணம்) ஆகியவற்றை ஆயத்தொலைவுகளுடன் (x, y) அமைக்கிறது:

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

  3. void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize)- கலத்தின் பின்னணி நிறம் (செல்கலர்), உள்ளடக்கங்கள் (மதிப்பு), உரை நிறம் (உரை வண்ணம்), மற்றும் உரை அளவு (உரை அளவு) ஆகியவற்றை ஆயத்தொலைவுகளுடன் (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)— ஒரு சீரற்ற முழு எண்ணை நிமிடத்திலிருந்து (அதிகபட்சம்-1) வரை வழங்குகிறது.

இப்பொழுது இத்துடன் நிறைவடைகிறது! "கேம்ஸ்" பகுதியைப் பற்றி மேலும் அறிய விரும்பினால், உதவக்கூடிய சில பயனுள்ள ஆவணங்கள் இங்கே உள்ளன:
கருத்துக்கள்
  • பிரபலமானவை
  • புதியவை
  • பழையவை
ஒரு கருத்தைத் தெரிவிக்க நீங்கள் உள்நுழைந்திருக்க வேண்டும்
இந்தப் பக்கத்தில் இதுவரை எந்தக் கருத்தும் வழங்கப்படவில்லை