
1. تعارف
ڈویلپر کے لیے، کمپیوٹر گیم کے نفاذ کے تین مراحل ہیں:-
گیم کی ابتداء - یہ مرحلہ تیاری کے اعمال پر مشتمل ہے: کھیل کے میدان کا سائز مقرر کرنا، کھیل کے میدان کو ڈرائنگ کرنا، گیم کی اشیاء بنانا اور انہیں ان کی ابتدائی پوزیشنوں پر رکھنا، اور دیگر اعمال جو کھیل کے آغاز میں انجام دینے چاہئیں۔
-
کھیل کا عمل۔ اس مرحلے میں حرکت پذیر گیم آبجیکٹ، پلیئر ایکشنز، اسکور رکھنا، اور دیگر اعمال شامل ہیں جو ایک خاص فریکوئنسی پر یا بٹن دبانے پر انجام دینے چاہئیں۔
-
گیم کی تکمیل۔ اس مرحلے میں اینیمیشن کو روکنا، جیت یا ہار کی اطلاع دینا، اور دیگر اعمال شامل ہیں جو گیم کے اختتام پر انجام دینے چاہئیں۔
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 سیلز اونچے:
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);
نتیجہ: 
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. کھیل کے میدان کے خلیوں کے ساتھ کام کرنا
حقیقت یہ ہے کہ ہم کھیل کے میدان کو خلیوں میں تقسیم کر سکتے ہیں، بہت اچھا ہے، لیکن ہم خود خلیات کے ساتھ کیا کر سکتے ہیں؟ آپ کھیل کے میدان کے ہر سیل کے لیے درج ذیل خصوصیات مرتب کر سکتے ہیں۔- سیل کا رنگ (سیل کے پس منظر کا رنگ)؛
- متن (متن یا نمبر)؛
- متن کا رنگ؛
- ٹیکسٹ سائز سیل سائز کے فیصد کے طور پر۔
-
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);
-
Color getCellColor(int x, int y)
- نقاط کے ساتھ سیل کا رنگ لوٹاتا ہے (x, y):Color myColor = getCellColor(2, 0);
-
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, "");
-
String getCellValue(int x, int y)
- کوآرڈینیٹس کے ساتھ سیل میں موجود متن کو واپس کرتا ہے (x, y):String s = getCellValue(3, 3); System.out.println(getCellValue(4, 1));
-
void setCellTextSize(int x, int y, int size)
- کوآرڈینیٹ (x، y) کے ساتھ سیل کے مواد کا سائز سیٹ کرتا ہے۔ سائز کا پیرامیٹر سیل کی اونچائی کے فیصد کے طور پر ٹیکسٹ کی اونچائی ہے:setCellTextSize(2 , 0, 70); // 70% of the cell height
-
int getCellTextSize(int x, int y)
- کوآرڈینیٹس کے ساتھ سیل کے مواد کا سائز واپس کرتا ہے (x, y):int size = getCellTextSize(2 , 0);
-
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);
-
int getCellNumber(int x, int y)
- کوآرڈینیٹ (x, y) کے ساتھ سیل میں موجود نمبر کو لوٹاتا ہے۔ اگر سیل میں کوئی نمبر نہیں ہے تو، 0 لوٹاتا ہے:int i = getCellNumber(3, 3); System.out.println(getCellNumber(4, 1));
-
void setCellTextColor(int x, int y, Color color)
- کوآرڈینیٹ (x، y) کے ساتھ سیل کے مواد (متن) کا رنگ سیٹ کرتا ہے:setCellTextColor(2, 1, Color.GREEN); setCellTextColor(0, 1, Color.NONE);
-
Color getCellTextColor(int x, int y)
- نقاط (x، y) کے ساتھ سیل کے مواد (متن) کا رنگ لوٹاتا ہے:Color textColor = getCellTextColor(1, 3);
setCellValueEx()
سہولت کے لیے، پیرامیٹرز کے مختلف سیٹوں کے ساتھ کئی طریقے ہیں :
-
void setCellValueEx(int x, int y, Color cellColor, String value)
- کوآرڈینیٹ (x، y) کے ساتھ سیل کے پس منظر کا رنگ (سیل کا رنگ) اور مواد (قدر) سیٹ کرتا ہے:setCellValueEx(0, 2, Color.BLUE, "56");
-
void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)
— کوآرڈینیٹ (x، y) کے ساتھ سیل کا پس منظر کا رنگ (سیل کا رنگ)، مواد (قدر) اور متن کا رنگ (ٹیکسٹ کلر) سیٹ کرتا ہے:setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN);
-
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. افادیت کے طریقے
کھیل لکھتے وقت، بے ترتیب نمبر بہت زیادہ استعمال ہوتے ہیں۔ بے ترتیب نمبر حاصل کرنا آسان بنانے کے لیے، آپ گیم انجن کے ذریعے فراہم کردہ درج ذیل یوٹیلیٹی طریقے استعمال کر سکتے ہیں:-
int getRandomNumber(int max)
- 0 سے (زیادہ سے زیادہ-1) تک ایک بے ترتیب عدد واپس کرتا ہے۔ -
int getRandomNumber(int min, int max)
- کم سے کم سے (زیادہ سے زیادہ 1) تک ایک بے ترتیب عدد واپس کرتا ہے۔
GO TO FULL VERSION