إليك كيفية إضافة مستويات إلى لعبتك لجعلها أكثر جاذبية ومتعة.

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

مستويات التخطيط والتصميم

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

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

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

إنشاء مستويين بسيطين

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

instagram viewer
نقطة تثبيت pygame

الآن ، قم بإنشاء مستويين بسيطين مع منصة ولاعب. هذا هو رمز المستوى الأول:

يستورد القزم

pygame.init ()

# تحديد الثوابت
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLATFORM_WIDTH = 100
PLATFORM_HEIGHT = 20
PLAYER_WIDTH = 50
PLAYER_HEIGHT = 50
PLATFORM_COLOR = (255, 255, 255)
PLAYER_COLOR = (255, 0, 0)

# إنشاء الشاشة
screen = pygame.display.set_mode ((SCREEN_WIDTH ، SCREEN_HEIGHT))

# إنشاء المنصة
المنصة = pygame. مستطيل (350, 500، PLATFORM_WIDTH ، PLATFORM_HEIGHT)

# أنشئ المشغل
لاعب = pygame. مستطيل (375, 450، PLAYER_WIDTH ، PLAYER_HEIGHT)

# حلقة اللعبة
تشغيل = حقيقي
بينما جري:
ل حدث في pygame.event.get ():
لو event.type == pygame. يترك:
تشغيل = خطأ شنيع
أليف event.type == pygame. زر أسفل:
لو event.key == pygame. K_LEFT:
player.move_ip (-10, 0)
أليف event.key == pygame. K_RIGHT:
player.move_ip (10, 0)

# املأ الشاشة باللون الأسود
screen.fill ((0, 0, 0))

# ارسم المنصة
pygame.draw.rect (شاشة ، PLATFORM_COLOR ، نظام أساسي)

# ارسم اللاعب
pygame.draw.rect (شاشة ، PLAYER_COLOR ، لاعب)

# تحديث الشاشة
pygame.display.flip ()

pygame.quit ()

بعد ذلك ، قم بإنشاء المستوى الثاني ببساطة عن طريق تغيير النظام الأساسي وموقع اللاعب. ها هو كود المستوى الثاني:

يستورد القزم

pygame.init ()

# تحديد الثوابت
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLATFORM_WIDTH = 150
PLATFORM_HEIGHT = 20
PLAYER_WIDTH = 50
PLAYER_HEIGHT = 50
PLATFORM_COLOR = (255, 255, 255)
PLAYER_COLOR = (255, 0, 0)

# إنشاء الشاشة
screen = pygame.display.set_mode ((SCREEN_WIDTH ، SCREEN_HEIGHT))

# إنشاء المنصة
المنصة = pygame. مستطيل (200, 500، PLATFORM_WIDTH ، PLATFORM_HEIGHT)

# أنشئ المشغل
لاعب = pygame. مستطيل (225, 450، PLAYER_WIDTH ، PLAYER_HEIGHT)

# حلقة اللعبة
تشغيل = حقيقي
بينما جري:
ل حدث في pygame.event.get ():
لو event.type == pygame. يترك:
تشغيل = خطأ شنيع
أليف event.type == pygame. زر أسفل:
لو event.key == pygame. K_LEFT:
player.move_ip (-10, 0)
أليف event.key == pygame. K_RIGHT:
player.move_ip (10, 0)

# املأ الشاشة باللون الأسود
screen.fill ((0, 0, 0))

# ارسم المنصة
pygame.draw.rect (شاشة ، PLATFORM_COLOR ، نظام أساسي)

# ارسم اللاعب
pygame.draw.rect (شاشة ، PLAYER_COLOR ، لاعب)

# تحديث الشاشة
pygame.display.flip ()

pygame.quit ()

هذا الرمز مشابه للمستوى الأول ، لكن تم تغيير المنصة ومواقع اللاعب.

ربط المستويات المختلفة

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

إليك حلقة اللعبة المعدلة:

المستوى الحالي = 1

# ارسم المنصة واللاعب بناءً على المستوى الحالي
لو المستوى الحالي == 1:
pygame.draw.rect (شاشة ، PLATFORM_COLOR ، platform1)
pygame.draw.rect (شاشة ، PLAYER_COLOR ، لاعب)
# تحقق مما إذا كان اللاعب قد وصل إلى نهاية المستوى
لو player.colliderect (platform1) == خطأ شنيع:
المستوى الحالي = 2
أليف المستوى الحالي == 2:
pygame.draw.rect (شاشة ، PLATFORM_COLOR ، platform2)
pygame.draw.rect (شاشة ، PLAYER_COLOR ، لاعب)
# تحقق مما إذا كان اللاعب قد وصل إلى نهاية المستوى
لو player.colliderect (platform2) == حقيقي:
تشغيل = خطأ شنيع

مشاركة بيانات اللعبة بين المستويات

تحتاج إلى تخزين بيانات اللعبة لمشاركتها بين المستويات. لذلك ، قم بإنشاء وحدة Python منفصلة لتخزين بيانات اللعبة واستيرادها إلى كل مستوى.

فيما يلي الخطوات:

  • قم بإنشاء وحدة Python جديدة باسم game_data.py.
  • حدد متغيرًا عامًا في ملف game_data.py وحدة لتخزين موقع اللاعب.
  • في كل مستوى ، قم باستيراد ملف بيانات اللعبة وحدة.
  • لاسترداد موقع اللاعب في كل مستوى ، استخدم game_data.player_pos متغيرًا بدلاً من إنشاء كائن لاعب جديد.
  • لتحديث موقع اللاعب ، قم بتعديل قيمة game_data.player_pos في كل تكرار.

إليك الكود المعدل لمشاركة موقع اللاعب بين المستويات.

في ال game_data.py وحدة ، أضف الكود التالي:

player_pos = (0, 0)

مستوى اول:

يستورد القزم
يستورد بيانات اللعبة

# أنشئ المشغل
لاعب = pygame. تصحيح (game_data.player_pos [0] ، game_data.player_pos [1] ، PLAYER_WIDTH ، PLAYER_HEIGHT)

# حلقة اللعبة
تشغيل = حقيقي
بينما جري:
# ارسم اللاعب
pygame.draw.rect (شاشة ، PLAYER_COLOR ، لاعب)

# قم بتحديث موضع اللاعب في وحدة game_data
game_data.player_pos = (player.x، player.y)

اجعل الألعاب أكثر تفاعلاً مع المستويات

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