عن المشروع
Godot-Python هو مشروع يهدف إلى جلب دعم لغة Python إلى محرك الألعاب Godot كوحدة سكربتات. يسمح للمطورين بكتابة سكربتات الألعاب بلغة Python بدلاً من GDScript، مستفيدين من نظام Python البيئي وتركيبته.
**الميزات الرئيسية:**
- **سكربتات Python في Godot:** استخدام فئات Python التي ترث من عقد Godot (مثل `Node2D` و`KinematicBody`) وتعريضها للمحرك عبر مصمم `@exposed`.
- **المصدّرات:** تعريف السمات والخصائص المُصدَّرة باستخدام `export(<type>)` للتكامل مع مفتش Godot.
- **وصول كامل لواجهة برمجة التطبيقات:** الوصول إلى واجهة Godot عبر الروابط المُولّدة (مثل `Vector2` و`ResourceLoader`).
- **فئات مساعدة:** يمكن استخدام فئات Python غير المُعرَّضة داخليًا للمنطق.
- **نظام البناء:** يعتمد على Scons وCython وJinja2، مع دعم لأنظمة Linux وWindows وmacOS.
- **الاختبار والأمثلة:** يتضمن اختبارات قائمة على pytest ومشروع مثال Pong.
**الحالة الحالية:** المشروع قيد إعادة هيكلة كبيرة لدعم Godot 4، وهو غير متوافق مع قاعدة الشيفرة الحالية. يجري التطوير على فرع `godot4-meson`. يستهدف فرع master إصدارات 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، وإنشاء بيئة افتراضية، وتثبيت التبعيات، وتشغيل Scons بأوامر خاصة بالمنصة (مثل `scons platform=x11-64 release`).
**أبرز الأسئلة الشائعة:**
- **تصدير المشاريع:** يلزم التصدير اليدوي؛ انسخ بيئة Python وثنائي Godot إلى مجلد الإصدار.
- **استخدام حزم Python:** ثبّت pip عبر `ensurepip` ثم استخدم `pip install` لإضافة حزم إلى المفسر المضمّن.
- **التصحيح باستخدام PyCharm:** أعد تسمية ثنائي Godot ليتضمن 'python' واستخدم "Attach to Local Process".
- **تحميل السكربتات تلقائيًا:** قم بالتكوين في `project.godot` تحت `[autoload]` و`[gdnative]`.
- **PoolArrays:** استخدم مدير سياق `arr.raw_access()` للوصول الفعّال، لكن احذر من سلامة الذاكرة.
**ملاحظة:** المشروع غير مُدار بنشاط لإصدار Godot 3، ويجب على المستخدمين التحقق من فرع `godot4-meson` للتحديثات المستقبلية.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.