سواء كان الاصطدام يمنح قوة أو يؤدي إلى انتهاء اللعبة ، يجب أن تكون قادرًا على اكتشافه. إليك كيفية القيام بذلك باستخدام مكتبة أركيد بيثون.
تعد التصادمات جانبًا أساسيًا من طريقة اللعب في العديد من أنواع ألعاب الفيديو. إنها تضيف طبقة من التحدي والإثارة للألعاب ، مما يتطلب من اللاعبين تجاوز العقبات ، ومراوغة الأعداء ، وجمع المكافآت.
يعد تنفيذ اكتشاف الاصطدام والتعامل معه في ألعابك أمرًا بالغ الأهمية لإنشاء آليات لعب واقعية وديناميكية تحافظ على تفاعل اللاعبين وتسليتهم. يمكنك بسهولة اكتشاف التصادمات مع مكتبة الآركيد ، باستخدام وظائفها المدمجة.
إنشاء لعبة بسيطة
قبل أن تبدأ ، تأكد من أن لديك نقطة مثبتة على جهازك. استخدم هذا الأمر لتثبيت مكتبة الآركيد:
نقطة تثبيت الممرات
بعد ذلك ، قم بإنشاء لعبة حيث يمكن للاعب التحرك إلى اليسار واليمين لتجنب الاصطدام بمستطيل العدو. يمكنك استخدام وظيفة الرسم المضمنة للعفاريت.
يمكنك العثور على كامل رمز في مستودع جيثب هذا.
هذا هو رمز اللعبة:
يستورد ممر
SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480
MOVEMENT_SPEED = 5فصللعبتي(ممر. نافذة او شباك):
"لعبتي")
def__فيه__(ذاتي ، عرض ، ارتفاع):
سوبر () .__ الحرف الأول __ (العرض ، الارتفاع ،
arcade.set_background_color (arcade.color. أبيض)
self.player = ممر. سبرايت سوليد كولور (50, 50، الممرات. أزرق)
self.player.center_x = SCREEN_WIDTH // 3
self.player.center_y = 50
العدو الذاتي = رواق. سبرايت سوليد كولور (50, 50، الممرات. أحمر)
self.enemy.center_x = SCREEN_WIDTH // 2
self.enemy.center_y = 50defon_draw(الذات):
arcade.start_render ()
self.player.draw ()
self.enemy.draw ()defon_key_press(ذاتي ، مفتاح ، معدِّلات):
لو مفتاح == arcade.key. غادر:
self.player.center_x - = MOVEMENT_SPEED
أليف مفتاح == arcade.key. يمين:
self.player.center_x + = MOVEMENT_SPEEDdefتحديث(ذاتي ، delta_time):
لو arcade.check_for_collision (اللاعب الذاتي ، العدو الذاتي):
مطبعة("انتهت اللعبة")defرئيسي():
اللعبة = MyGame (SCREEN_WIDTH ، SCREEN_HEIGHT)
arcade.run ()
لو __name__ == "__رئيسي__":
رئيسي()
ميزات كشف الاصطدام في Arcade
توفر مكتبة Arcade طريقة بسيطة لاكتشاف التصادمات بين الكائنات الحية. ال check_for_collision تأخذ الدالة اثنين من النقوش المتحركة كوسيطات وترجع قيمة منطقية تشير إلى ما إذا كانت النقوش المتحركة قد اصطدمت أم لا. يمكنك استخدام هذه الوظيفة لاكتشاف الاصطدامات بين اللاعب وعفاريت العدو في لعبتك.
يمكنك تغيير تحديث طريقة للتحقق من الاصطدامات بين اللاعب وعفاريت العدو. إذا اكتشفت المكتبة تصادمًا ، فيمكنك الطباعة انتهت اللعبة إلى وحدة التحكم.
هذا هو الكود المحدث:
defتحديث(ذاتي ، delta_time):
لو arcade.check_for_collision (اللاعب الذاتي ، العدو الذاتي):
مطبعة("انتهت اللعبة")
آخر:
self.player.update ()
مع هذا التغيير ، ستكتشف لعبتك التصادمات والطباعة انتهت اللعبة أرسل رسالة نصية إذا اصطدم اللاعب بالعدو.
إضافة المزيد من الميزات
لجعل لعبتك أكثر جاذبية ، يمكنك إضافة ميزات إضافية مثل التهديف ، وشكا من القوة ، وأعداء متعددين.
على سبيل المثال ، يمكنك إنشاء قائمة بالأعداء وتحديث اللعبة لنشر أعداء جدد في مواقع عشوائية بعد كل تصادم. أنت تستطيع حرك اللاعب اليسار واليمين لتجنب العدو وتسجيل نقطة. فيما يلي مثال على كيفية تنفيذ هذه الميزات:
يستورد عشوائي
فصللعبتي(ممر. نافذة او شباك):
def__فيه__(ذاتي ، عرض ، ارتفاع):
سوبر () .__ الحرف الأول __ (العرض ، الارتفاع ، "لعبتي")
arcade.set_background_color (arcade.color. أبيض)
self.player = ممر. سبرايت سوليد كولور (50, 50، الممرات. أزرق)
self.player.center_x = SCREEN_WIDTH // 2
self.player.center_y = 50
أعداء النفس = ممر. SpriteList ()
النتيجة الذاتية = 0
ل أنا في يتراوح(3):
العدو = الممرات. سبرايت سوليد كولور (50, 50، الممرات. أحمر)
العدو.center_x = random.randint (0، عرض الشاشة)
العدو.center_y = random.randint (SCREEN_HEIGHT // 2، ارتفاع الشاشة)
self.enemies.append (العدو)defon_draw(الذات):
arcade.start_render ()
self.player.draw ()
أعداء النفس. رسم ()
arcade.draw_text (و "النتيجة: {self.score}", 10، ارتفاع الشاشة - 30، الممرات. أسود، 16)
defتحديث(ذاتي ، delta_time):
لو arcade.check_for_collision_with_list (self.player ، self.enemies):
مطبعة("انتهت اللعبة")
arcade.close_window ()
آخر:
self.player.update ()
ل العدو في أعداء النفس:
العدو.center_y - = MOVEMENT_SPEED / 2
لو العدو. center_y 0:
العدو.center_x = random.randint (0، عرض الشاشة)
العدو.center_y = random.randint (SCREEN_HEIGHT // 2، ارتفاع الشاشة)
النتيجة الذاتية + = 1
مع هذه التغييرات ، أصبحت لعبتك الآن متعددة الأعداء الذين يولدون في مواقع عشوائية ويتحركون للأسفل. يكسب اللاعب نقطة مقابل كل عدو تم تجنبه بنجاح ، وتنتهي اللعبة إذا اصطدم اللاعب بأي عدو.
تحسين تفاعل المستخدم مع الاصطدامات
من خلال إضافة ميزات الكشف عن الاصطدام والتعامل معه إلى ألعابك ، يمكنك إنشاء تجارب لعب غامرة وصعبة للاعبين. من ألعاب التجنب والتجميع البسيطة إلى ألعاب المنصات والرماة الأكثر تعقيدًا ، تلعب التصادمات دورًا مهمًا في إنشاء آليات لعب جذابة ومرضية.
لذلك ، إذا كنت ترغب في إنشاء المزيد من الألعاب الجذابة والغامرة التي تجعل اللاعبين يعودون للحصول على المزيد ، ففكر في دمج ميزات اكتشاف الاصطدام في آليات اللعب الخاصة بك.