CodeGym /جاوا بلاگ /Random-UR /کوڈ جیم پر گیمز سیکشن: گیم انجن
John Squirrels
سطح
San Francisco

کوڈ جیم پر گیمز سیکشن: گیم انجن

گروپ میں شائع ہوا۔
CodeGym سے "گیمز" ایک نیا سیکشن ہے جس میں بڑے کام ہیں جن میں مشہور کمپیوٹر گیمز لکھنا شامل ہے۔ ان کی تخلیق اس سے کہیں زیادہ آسان ہے جس سے لگتا ہے: ہر پروجیکٹ کو بیس ذیلی کاموں میں تقسیم کیا گیا ہے۔ کاموں کو مرحلہ وار مکمل کرتے ہوئے، آپ اپنا گیم خود لکھیں گے، اور پھر آپ منفرد خصوصیات شامل کر سکتے ہیں اور دوستوں کے ساتھ اس کا اشتراک کر سکتے ہیں۔ CodeGym پر "گیمز" سیکشن: گیم انجن - 1گیمز سادہ کوڈ جیم گیم انجن کا استعمال کرتی ہیں ۔ اس مضمون میں، ہم اس کی اہم خصوصیات اور گیم لکھنے کا عمل کیسا لگتا ہے اس کی وضاحت کریں گے۔

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 سیلز اونچے: 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)— کوآرڈینیٹس کے ساتھ سیل کا پس منظر کا رنگ (سیل کا رنگ)، مواد (قدر)، متن کا رنگ (ٹیکسٹ کلر) اور ٹیکسٹ سائز (ٹیکسٹ سائز) سیٹ کرتا ہے:

    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) تک ایک بے ترتیب عدد واپس کرتا ہے۔

ابھی کے لیے بس اتنا ہی ہے! اگر آپ "گیمز" سیکشن کے بارے میں مزید جاننا چاہتے ہیں، تو یہاں کچھ مفید دستاویزات ہیں جو مدد کر سکتی ہیں:
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION