اجعل شخصيتك الرئيسية تتحرك استجابةً لإدخال اللاعب باستخدام أحداث لوحة المفاتيح والماوس في مكتبة Arcade.

Arcade هي مكتبة Python شهيرة يمكنك استخدامها لإنشاء ألعاب أركيد ثنائية الأبعاد. إنها مكتبة سهلة الاستخدام توفر إطارًا بسيطًا لإنشاء ألعاب باستخدام Python.

تعتبر حركة اللاعب من المكونات الأساسية لأي لعبة.

إنشاء لعبة بسيطة في Arcade

يمكنك العثور على كامل رمز في مستودع جيثب هذا.

قبل أن تبدأ ، تأكد من أن لديك نقطة مثبتة على جهازك. استخدم هذا الأمر لتثبيت مكتبة الآركيد:

مكتبة تثبيت نقطة

بعد ذلك ، قم بإنشاء فئة Player كفئة فرعية من ممر. شبح فئة ، و لعبتي فئة كفئة فرعية من ممر. نافذة او شباك. ال لعبتي سيكون للفئة طرق لإعداد كائنات اللعبة وعرضها على الشاشة وتحديث حالة اللعبة والتعامل مع مدخلات المستخدم. الكود الخاص بإنشاء شاشة اللعبة وكائن اللاعب هو كما يلي:

يستورد ممر

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

فصللاعب(ممر. شبح):
def__فيه__(الذات):
سوبر () .__ الحرف الأول __ ("player.png", 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = SCREEN_HEIGHT // 2

فصللعبتي(ممر. نافذة او شباك):
def__فيه__(الذات):

instagram viewer

سوبر () .__ init __ (SCREEN_WIDTH ، SCREEN_HEIGHT ، "لعبتي")
اللاعب الذاتي = لا أحد
arcade.set_background_color (arcade.color. أسود)

defيثبت(الذات):
self.player = لاعب ()

defon_draw(الذات):
arcade.start_render ()
self.player.draw ()

defتحديث(ذاتي ، delta_time):
يمر

MyGame (). run ()

إضافة حركة اللاعب بإدخال لوحة المفاتيح

الآن بعد أن أنشأت شاشة اللعبة وكائن اللاعب ، يمكنك تحريك اللاعب استجابة لإدخال لوحة المفاتيح. عرّف ال on_key_press () و on_key_release () ، والتي سوف تتصل بها عندما يضغط المشغل على مفتاح أو يحرره.

defon_key_press(ذاتي ، مفتاح ، معدِّلات):
لو مفتاح == arcade.key. غادر:
self.player.change_x = -5
أليف مفتاح == arcade.key. يمين:
self.player.change_x = 5
أليف مفتاح == arcade.key. أعلى:
self.player.change_y = 5
أليف مفتاح == arcade.key. تحت:
self.player.change_y = -5

defon_key_release(ذاتي ، مفتاح ، معدِّلات):
لو مفتاح == arcade.key. غادر أو مفتاح == arcade.key. يمين:
self.player.change_x = 0
أليف مفتاح == arcade.key. أعلى أو مفتاح == arcade.key. تحت:
self.player.change_y = 0

عند إضافة حركة المشغل بإدخالات لوحة المفاتيح ، يمكنك تخصيص سرعة الحركة عن طريق تغيير القيمة المخصصة لـ self.player.change_x و self.player.change_y. يمكنك أيضًا إضافة شروط لتقييد حركة اللاعب داخل شاشة اللعبة.

إضافة حركة اللاعب مع إدخال الماوس

بالإضافة إلى إدخالات لوحة المفاتيح ، يمكنك أيضًا إضافة حركة المشغل باستخدام إدخال الماوس. عرّف ال on_mouse_motion () الطريقة ، والتي سيتم تشغيلها عندما يحرك اللاعب الماوس. داخل الطريقة ، اضبط ملف center_x و center_y خصائص كائن المشغل إلى موضع الماوس الحالي.

defon_mouse_motion(self، x، y، dx، dy):
self.player.center_x = x
self.player.center_y = ذ

عند إضافة حركة اللاعب بإدخال الماوس ، يمكنك تخصيص سلوك كائن المشغل عندما ينقر المستخدم أو يضغط بالماوس عن طريق تحديد أساليب مثل on_mouse_press () أو on_mouse_drag (). يمكنك استخدام هذه الأساليب لتحريك حركات اللاعب مثل الرماية أو القفز ، اعتمادًا على آليات اللعبة.

تقديم ميزات إضافية

يمكنك زيادة تعزيز حركة اللاعب من خلال أخذ التسارع والتباطؤ في الاعتبار. تعديل on_key_press () طريقة طرح أو إضافة change_x و تغيير ص خصائص كائن اللاعب ، اعتمادًا على اتجاه الحركة. قم أيضًا بتعيين ملف change_x و تغيير ص خصائص 0 في on_key_release () الطريقة ، كما كان من قبل.

defon_key_press(ذاتي ، مفتاح ، معدِّلات):
لو مفتاح == arcade.key. غادر:
self.player.change_x - = 5
أليف مفتاح == arcade.key. يمين:
self.player.change_x + = 5
أليف مفتاح == arcade.key. أعلى:
self.player.change_y + = 5
أليف مفتاح == arcade.key. تحت:
self.player.change_y - = 5

defon_key_release(ذاتي ، مفتاح ، معدِّلات):
لو مفتاح == arcade.key. غادر أو مفتاح == arcade.key. يمين:
self.player.change_x = 0
أليف مفتاح == arcade.key. أعلى أو مفتاح == arcade.key. تحت:
self.player.change_y = 0

تمامًا مثل PyGame ، يمكنك أيضًا القيام بذلك إضافة كشف التصادم بين كائن اللاعب وغيرها من كائنات اللعبة ، مثل الأعداء أو العقبات في الممرات. يمكنك تحقيق ذلك عن طريق إضافة الكود التالي إلى ملف تحديث() طريقة لعبتي فصل:

defتحديث(ذاتي ، delta_time):
self.player.update ()

# تحقق من الاصطدام بين اللاعب وكائنات اللعبة الأخرى
الاصطدامات = arcade.check_for_collision_with_list (self.player، self.enemy_list)

ل تصادم في الاصطدامات:
collision.kill ()

اصنع ألعابًا جذابة مع حركة تفاعلية للاعب

تعد حركة اللاعب التفاعلية جانبًا مهمًا في أي لعبة تفاعلية. يمكن أن يؤدي استخدام أنواع مختلفة من آليات الحركة مثل القفز والجري والطيران والانزلاق إلى إضافة التنوع والإثارة إلى اللعبة.

إن منح اللاعبين السيطرة على حركتهم يضيف إحساسًا بالوكالة والانغماس ، مما قد يؤدي إلى تجربة لعب أكثر إرضاءً.