منصوبے کے بارے میں

Godot-Python ایک پروجیکٹ ہے جس کا مقصد Godot گیم انجن میں Python زبان کی حمایت کو اسکرپٹنگ ماڈیول کے طور پر لانا ہے۔ یہ ڈویلپرز کو GDScript کی بجائے Python میں گیم اسکرپٹ لکھنے کی اجازت دیتا ہے، Python کے ماحولیاتی نظام اور نحو سے فائدہ اٹھاتے ہوئے۔ **اہم خصوصیات:** - **Godot میں Python اسکرپٹنگ:** Python کلاسز استعمال کریں جو Godot نوڈس سے وراثت حاصل کرتی ہیں (مثلاً `Node2D`, `KinematicBody`) اور انہیں `@exposed` ڈیکوریٹر کے ذریعے انجن میں ظاہر کریں۔ - **ایکسپورٹس:** Godot کے انسپکٹر کے ساتھ انضمام کے لیے `export(<type>)` کا استعمال کرتے ہوئے ایکسپورٹ شدہ خصوصیات اور پراپرٹیز کی وضاحت کریں۔ - **مکمل API رسائی:** پیدا کردہ bindings کے ذریعے Godot کی API تک رسائی حاصل کریں (مثلاً `Vector2`, `ResourceLoader`)۔ - **مددگار کلاسیں:** غیر ظاہر شدہ Python کلاسیں اندرونی طور پر منطق کے لیے استعمال کی جا سکتی ہیں۔ - **بلڈ سسٹم:** Scons، Cython، اور Jinja2 پر مبنی، Linux، Windows، اور macOS کے لیے سپورٹ کے ساتھ۔ - **جانچ اور مثالیں:** pytest پر مبنی ٹیسٹ اور ایک Pong مثال پروجیکٹ شامل ہے۔ **موجودہ حیثیت:** یہ پروجیکٹ Godot 4 کی حمایت کے لیے بھاری refactoring سے گزر رہا ہے، جو موجودہ کوڈبیس سے مطابقت نہیں رکھتا۔ ترقی `godot4-meson` برانچ پر ہو رہی ہے۔ ماسٹر برانچ Godot 3.x کو نشانہ بناتی ہے۔ **تنصیب:** صارفین Godot کی اثاثہ لائبریری کے ذریعے انسٹال کر سکتے ہیں، اثاثہ لائبریری ویب سائٹ سے ڈاؤن لوڈ کر سکتے ہیں، یا ریلیز صفحہ سے پلیٹ فارم کے لیے مخصوص بلڈ حاصل کر سکتے ہیں۔ **استعمال کی مثال:** ```python from godot import exposed, export, Vector2, Node2D, ResourceLoader @exposed class Player(Node2D): name = export(str) @export(int) @property def age(self): return self._age @age.setter def age(self, value): self._age = value def talk(self, msg): print(f"I'm saying {msg}") def _ready(self): self._age = 42 print(self.get_name()) def _process(self, delta): self.position += Vector2(10, 10) * delta ``` **سورس سے تعمیر:** Python >= 3.7 اور ایک C کمپائلر درکار ہے۔ اقدامات میں GDNative ہیڈرز کے لیے submodules کو ابتدائی کرنا، ایک ورچوئل ماحول بنانا، انحصار انسٹال کرنا، اور پلیٹ فارم کے لیے مخصوص کمانڈز کے ساتھ Scons چلانا شامل ہے (مثلاً `scons platform=x11-64 release`)۔ **اکثر پوچھے گئے سوالات کی جھلکیاں:** - **پروجیکٹ ایکسپورٹ کرنا:** دستی ایکسپورٹ ضروری ہے؛ Python ماحول اور Godot بائنری کو ریلیز فولڈر میں کاپی کریں۔ - **Python پیکیجز استعمال کرنا:** `ensurepip` کے ذریعے pip انسٹال کریں اور پھر ایمبیڈڈ انٹرپریٹر میں پیکیجز شامل کرنے کے لیے `pip install` استعمال کریں۔ - **PyCharm کے ساتھ ڈیبگنگ:** Godot بائنری کا نام تبدیل کرکے 'python' شامل کریں اور "Attach to Local Process" استعمال کریں۔ - **آٹو لوڈنگ اسکرپٹس:** `project.godot` میں `[autoload]` اور `[gdnative]` کے تحت ترتیب دیں۔ - **PoolArrays:** موثر رسائی کے لیے `arr.raw_access()` کانٹیکسٹ مینیجر استعمال کریں، لیکن میموری کی حفاظت سے محتاط رہیں۔ **نوٹ:** یہ پروجیکٹ Godot 3 کے لیے فعال طور پر برقرار نہیں ہے، اور صارفین کو مستقبل کی اپ ڈیٹس کے لیے `godot4-meson` برانچ چیک کرنی چاہیے۔