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

تعتبر النتائج جزءًا لا يتجزأ من العديد من الألعاب لأنها توفر مقياسًا للتقدم والإنجاز للاعبين.

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

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

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

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

الآن ، قم بإنشاء لعبة بسيطة باستخدام مكتبة Python Arcade.

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

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

يستورد ممر

# قم بإعداد أبعاد النافذة
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

فصللعبتي(ممر. نافذة او شباك):
def__فيه__(ذاتي ، عرض ، ارتفاع):
سوبر () .__ الحرف الأول __ (العرض ، الارتفاع)
self.player_x = العرض // 3
النتيجة الذاتية = 0

instagram viewer

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

defتحديث(ذاتي ، delta_time):
# تحديث منطق اللعبة هنا
يمر

defon_draw(الذات):
arcade.start_render ()
arcade.draw_circle_filled (self.player_x ، 50, 20، الممرات. أزرق)
arcade.draw_rectangle_filled (400, 50, 100, 50، الممرات. أحمر)

defرئيسي():
اللعبة = MyGame (SCREEN_WIDTH ، SCREEN_HEIGHT)
arcade.run ()

لو __name__ == "__رئيسي__":
رئيسي()

تتبع النقاط وحسابها

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

فصللعبتي(ممر. نافذة او شباك):
def__فيه__(ذاتي ، عرض ، ارتفاع):
سوبر () .__ الحرف الأول __ (العرض ، الارتفاع)
self.player_x = العرض // 3
النتيجة الذاتية = 0

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

defتحديث(ذاتي ، delta_time):
لو self.player_x> 330و self.player_x < 470:
النتيجة الذاتية + = 1

عرض النتيجة

لعرض النتيجة للاعب ، قم بتعديل ملف on_draw طريقة لتضمين عرض النص:

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

defon_draw(الذات):
arcade.start_render ()
arcade.draw_circle_filled (self.player_x ، 50, 20، الممرات. أزرق)
arcade.draw_rectangle_filled (400, 300, 100, 50، الممرات. أحمر)

Score_text = و "النتيجة: {self.score}"
arcade.draw_text (Score_text ، 10, 10، الممرات. أبيض، 14)

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

تخزين الدرجة العالية

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

استخدم ال load_high_score طريقة لقراءة الدرجة العالية من ملف يسمى high_score.txt وإعادته. بعد ذلك ، يمكنك حفظ الدرجة العالية الجديدة في الملف باستخدام امتداد save_high_score طريقة.

فصللعبتي(ممر. نافذة او شباك):
def__فيه__(ذاتي ، عرض ، ارتفاع):
سوبر () .__ الحرف الأول __ (العرض ، الارتفاع)
self.player_x = العرض // 3
النتيجة الذاتية = 0
self.high_score = self.load_high_score ()

defload_high_score(الذات):
يحاول:
مع يفتح("high_score.txt", "ص") مثل ملف:
يعود int (file.read ())
يستثني FileNotFoundError:
يعود0

defsave_high_score(الذات):
مع يفتح("high_score.txt", "w") مثل ملف:
file.write (str (self.high_score))

defتحديث(ذاتي ، delta_time):
# ...

لو النتيجة الذاتية> self.high_score:
self.high_score = النتيجة الذاتية
self.save_high_score ()

عرض درجة عالية

على غرار عرض النتيجة الحالية ، يمكنك إضافة عرض نص لعرض الدرجة العالية:

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

defon_draw(الذات):
# ...

high_score_text = f "درجة عالية: {self.high_score}"
arcade.draw_text (high_score_text ، 10, 30، الممرات. أبيض، 14)

بتضمين الكود أعلاه في ملف on_draw الطريقة ، يمكنك عرض الدرجة العالية فوق النتيجة الحالية مباشرة.

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

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

زادت الطاقة

تعزيزات القوة هي عناصر خاصة تمنح اللاعبين مزايا مؤقتة أو نقاطًا إضافية. يخترع تنشيط_قوة_وب الطريقة التي تؤدي إلى تنشيط الطاقة ، وضبط power_up_active علم إلى صحيح.

يمكنك جدولة ملفات تنشيط_قوة_اب طريقة للتشغيل بعد مدة معينة (على سبيل المثال ، 10 ثوانٍ) باستخدام ملف الممرات وظيفة. أثناء فترة تنشيط الطاقة ، يمكنك استخدام تطبيق_قوة_على_التأثيرات طريقة لتنفيذ تحسينات محددة على طريقة اللعب.

فيما يلي مثال على تنفيذ ميزة تعزيز الطاقة في لعبتك.

فصللعبتي(ممر. نافذة او شباك):
def__فيه__(ذاتي ، عرض ، ارتفاع):
سوبر () .__ الحرف الأول __ (العرض ، الارتفاع)
self.player_x = العرض // 3
النتيجة الذاتية = 0
self.power_up_active = خطأ شنيع

defتحديث(ذاتي ، delta_time):
لو self.power_up_active:
# تطبيق تأثيرات زيادة الطاقة أثناء اللعب
self.apply_power_up_effects ()
النتيجة الذاتية + = 10

defتطبيق_قوة_على_التأثيرات(الذات):
# أضف منطقًا محددًا للطاقة هنا
يمر

defتنشيط_قوة_وب(الذات):
self.power_up_active = حقيقي
# اضبط مؤقتًا أو مدة لتأثير زيادة الطاقة
جدول زمني (تنشيط_قوة_لذاتي ، 10.0)

defتنشيط_قوة_اب(ذاتي ، delta_time):
self.power_up_active = خطأ شنيع

نظام كومبو

يكافئ نظام التحرير والسرد اللاعبين على تحقيق إجراءات ناجحة متتالية أو مضاعفات النتيجة. يخترع زيادة_كومبو_كونتر طريقة تزيد من عداد التحرير والسرد وتزيد النتيجة بناءً على مستوى التحرير والسرد الحالي.

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

فصللعبتي(ممر. نافذة او شباك):
def__فيه__(ذاتي ، عرض ، ارتفاع):
سوبر () .__ الحرف الأول __ (العرض ، الارتفاع)
self.player_x = العرض // 3
النتيجة الذاتية = 0
self.combo_counter = 0

defتحديث(ذاتي ، delta_time):
# تحقق من الإجراءات الناجحة
لو self.check_successful_action ():
زيادة self.increase_combo_counter ()
آخر:
self.reset_combo_counter ()

defزيادة_كومبو_كونتر(الذات):
self.combo_counter + = 1
النتيجة الذاتية + = self.combo_counter

defreset_combo_counter(الذات):
self.combo_counter = 0

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

أفضل الممارسات لإدارة النتائج

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

آليات تسجيل ذات مغزى

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

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

ردود الفعل المرئية

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

المؤثرات الصوتية والرسوم المتحركة

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

صعوبة الموازنة وتحجيم النقاط

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

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

تحسين المشاركة في اللعبة مع تتبع النتيجة

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

اعرض النتائج بشكل بارز وكافئ الإنجازات العالية - ستحفز اللاعبين على السعي لتحقيق أداء أفضل وتحسين مهاراتهم.