تستخدم معظم ألعاب المنصات نوعًا من القفز ، مع اختلافات تشمل القفز المزدوج والقفز متغير الارتفاع. اكتشف التقنيات الكامنة وراء هذه الحركات.

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

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

قم بإنشاء لعبة بسيطة

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

نقطة تثبيت الممرات

لاستكشاف كيفية عمل ميكانيكا القفز ، ابدأ بإنشاء لعبة بسيطة حيث يمكن للاعب أن يتحرك يمينًا ويسارًا بالجاذبية ومنصة ثابتة.

الكود المستخدم في هذه المقالة متوفر في هذا مستودع جيثب وهو مجاني لك لاستخدامه بموجب ترخيص MIT.

في اللعبة ، سيصطدم اللاعب بالمنصة ويقف فوقها. قم بإنشاء ملف جديد باسم لعبة بسيطة وأضف الكود التالي:

يستورد ممر

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLAYER_RADIUS = 20
PLATFORM_WIDTH = 200
PLATFORM_HEIGHT = 20
الجاذبية = 0.5
أزرق = لون الممرات. أزرق
أخضر = أركيد. أخضر

instagram viewer

فصلGameWindow(ممر. نافذة او شباك):
def__فيه__(الذات):
سوبر () .__ init __ (SCREEN_WIDTH ، SCREEN_HEIGHT ، "ميكانيكا القفز")
self.player_x = SCREEN_WIDTH // 2
self.player_y = SCREEN_HEIGHT // 2
self.player_dy = 0
self.platform_x = SCREEN_WIDTH // 2
self.platform_y = SCREEN_HEIGHT // 4

defon_draw(الذات):
arcade.start_render ()

arcade.draw_circle_filled (self.player_x ، self.player_y ،
PLAYER_RADIUS ، أزرق)

arcade.draw_rectangle_filled (self.platform_x، self.platform_y،
PLATFORM_WIDTH ، PLATFORM_HEIGHT ، أخضر)

defon_update(ذاتي ، delta_time):
self.player_dy - = الجاذبية
self.player_y + = self.player_dy
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

لو self.player_y self.player_y = توزيع
self.player_dy = 0

اللعبة = GameWindow ()
arcade.run ()

عند تشغيل البرنامج ، سترى كائن المشغل يسقط بسرعة على المنصة ، ثم يظل مستريحًا فوقه.

إضافة ميزة الانتقال السريع

الآن ، أضف ميزة قفزة بسيطة إلى اللعبة. تحقق من التصادم بين المشغل والمنصة وتحريك إجراء القفز عندما يضغط اللاعب على مفتاح السهم لأعلى. لتحقيق ذلك ، قم بإنشاء ملف جديد باسم Jump.py والكود مع التحديثات أدناه:

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

defon_key_press(ذاتي ، مفتاح ، معدِّلات):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

لو مفتاح == arcade.key. أعلى و self.player_y == on_ground:
self.player_dy = 10

defon_update(ذاتي ، delta_time):
self.player_dy - = الجاذبية
self.player_y + = self.player_dy
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

لو self.player_y self.player_y = توزيع
self.player_dy = 0
jump_count = 0

إضافة ميزة القفز المزدوج

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

قم بإنشاء ملف جديد باسم double -jump.py والكود مع التحديثات أدناه:

فصلGameWindow(ممر. نافذة او شباك):
def__فيه__(الذات):
jump_count = 0# تتبع عدد القفزات

defon_key_press(ذاتي ، مفتاح ، معدِّلات):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

لو مفتاح == arcade.key. أعلى:
لو self.player_y == on_ground أو self.jump_count < 2:
self.player_dy = 10
jump_count + = 1

بما في ذلك الميزات الإضافية

بصرف النظر عن القفزات البسيطة والمزدوجة ، هناك العديد من الميزات التي يمكنك إضافتها لتحسين آليات القفز في لعبتك.

تنفيذ ارتفاع القفز المتغير

إن السماح للاعب بالتحكم في ارتفاع قفزاته بناءً على المدة التي يحتفظ بها على زر القفز يمكن أن يضيف المزيد من التحكم والاستراتيجية إلى طريقة اللعب. فيما يلي مثال على كيفية تنفيذ ارتفاع القفزة المتغير. قم بإنشاء ملف جديد باسم متغير jump.py والكود مع التحديثات أدناه:

الجاذبية = 0.5
JUMP_POWER_INCREMENT = 0.2
MAX_JUMP_POWER = 100

فصلGameWindow(ممر. نافذة او شباك):
def__فيه__(الذات):
سوبر () .__ init __ (SCREEN_WIDTH ، SCREEN_HEIGHT ، "ميكانيكا القفز")
jump_pressed = خطأ شنيع
jump_power = 0

defon_key_press(ذاتي ، مفتاح ، معدِّلات):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

لو مفتاح == arcade.key. أعلى و self.player_y == on_ground:
jump_pressed = حقيقي

defon_key_release(ذاتي ، مفتاح ، معدِّلات):
لو مفتاح == arcade.key. أعلى:
jump_pressed = خطأ شنيع

defupdate_jump_power(الذات):
# زيادة قوة القفز أثناء الضغط على زر القفز
لو jump_pressed:
jump_power + = JUMP_POWER_INCREMENT

لو jump_power> MAX_JUMP_POWER:
jump_power = MAX_JUMP_POWER
آخر:
لو self.jump_power> 0:
self.jump_power - = 1

defon_update(ذاتي ، delta_time):
self.player_dy - = الجاذبية
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

لو self.player_y == توزيعات و self.jump_power> 0:
self.player_dy = self.jump_power

self.player_y + = self.player_dy
self.update_jump_power ()

تنفيذ ميزة Air Dash

يمكن أن تمنح إضافة ميكانيكي اندفاعة الهواء للاعب خيارات تنقل إضافية أثناء وجوده في الجو. قم بإنشاء ملف جديد باسم air-dash.py والكود مع التحديثات أدناه:

AIR_DASH_DISTANCE = 100
MAX_AIR_DASHES = 2

فصلGameWindow(ممر. نافذة او شباك):
def__فيه__(الذات):
سوبر () .__ init __ (SCREEN_WIDTH ، SCREEN_HEIGHT ، "ميكانيكا القفز")
self.on_ground = خطأ شنيع
self.air_dashes = 0
self.can_air_dash = حقيقي

defon_key_press(ذاتي ، مفتاح ، معدِّلات):
لو مفتاح == arcade.key. أعلى و self.on_ground:
self.player_dy = 10
أليف مفتاح == arcade.key. أعلى و \
شرطات self.air_DASHES و \
self.can_air_dash:
self.player_dx = AIR_DASH_DISTANCE
شرطات self.air_dashes + = 1
self.can_air_dash = خطأ شنيع

defon_update(ذاتي ، delta_time):
self.player_dy - = الجاذبية
self.player_y + = self.player_dy

dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

لو self.player_y <= توزيع:
self.player_y = توزيع
self.player_dy = 0
self.on_ground = حقيقي
آخر:
self.on_ground = خطأ شنيع

self.player_x + = self.player_dx

لو self.player_x self.player_x = PLAYER_RADIUS
self.player_dx = 0
أليف self.player_x> SCREEN_WIDTH - PLAYER_RADIUS:
self.player_x = SCREEN_WIDTH - PLAYER_RADIUS
self.player_dx = 0

لو self.on_ground:
self.air_dashes = 0
self.can_air_dash = حقيقي

عندما تقوم بتنفيذ اندفاعة الهواء ، ستبتعد شخصية اللاعب الخاص بك بعيدًا عن المنصة:

أفضل الممارسات لميكانيكا القفز

يتطلب تنفيذ آليات القفز في اللعبة دراسة متأنية لضمان تجربة لعب سلسة وممتعة. فيما يلي بعض أفضل الممارسات التي يجب وضعها في الاعتبار:

ارتفاع التوازن ومدته

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

ضع في اعتبارك فيزياء اللعبة وقدراتها الشخصية وتصميم المستوى العام عند تحديد آليات القفز المناسبة.

تقديم الملاحظات المرئية والصوتية

تعتبر التعليقات المرئية والصوتية ضرورية لجعل القفزات تشعر بالاستجابة والرضا. استخدم الرسوم المتحركة أو تأثيرات الجسيمات لتصوير حركة القفز والهبوط للاعب.

بالإضافة إلى ذلك ، ضع في اعتبارك إضافة مؤثرات صوتية أو موسيقى خلفية يعزز تجربة القفز. تساهم هذه الإشارات المرئية والمسموعة في انغماس ومشاركة اللاعبين.

ضبط دقيق لكشف الاصطدام

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

اختبر رمز الكشف عن التصادم وكرره للتخلص من أي خلل أو تناقضات قد تؤثر على ميكانيكا القفز.

اجعل الألعاب أكثر متعة مع ميكانيكا القفز

يمكن أن تؤدي إضافة آليات القفز إلى تعزيز المشاركة والتمتع باللعبة بشكل كبير. إنه يفتح إمكانيات جديدة لتصميم المستوى والألغاز والعقبات الصعبة. من خلال تنفيذ آليات القفز المختلفة في مكتبة Python Arcade Game ، يمكنك إنشاء ألعاب منصات جذابة تُبقي اللاعبين مستمتعين لساعات.

تذكر أن تجربة آليات القفز المختلفة ودمج الميزات الفريدة يمكن أن يميز لعبتك ويجعلها تجربة غامرة ولا تنسى للاعبين.