"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تنفيذ التمرير السلس في ألعاب Pygame Platformer؟

كيفية تنفيذ التمرير السلس في ألعاب Pygame Platformer؟

نشر في 2025-03-22
تصفح:784

How to Implement Smooth Scrolling in Pygame Platformer Games?

أضف التمرير إلى منصة في pygame

يتم تحقيق هذا التأثير من خلال التمرير ، والذي يسمح لعالم اللعبة بالانتقال بشكل مستقل عن موضع اللاعب.

تنفيذ التمرير:

لتنفيذ التمرير في pygame ، استخدم الكاميرا

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

إنشاء فئة الكاميرا:

def __init __ (self ، camera_func ، العرض ، الارتفاع): self.camera_func = camera_func Self.State = Rect (0 ، 0 ، العرض ، الارتفاع) DEF تنطبق (الذات ، الهدف): إرجاع Target.Rect.Move (Self.state.topleft) تحديث DEF (الذات ، الهدف): self.state = self.camera_func (self.state ، target.rect)

class Camera:
    def __init__(self, camera_func, width, height):
        self.camera_func = camera_func
        self.state = Rect(0, 0, width, height)

    def apply(self, target):
        return target.rect.move(self.state.topleft)

    def update(self, target):
        self.state = self.camera_func(self.state, target.rect)
البكسل. l ، t ، _ ، _ = target_rect # l = left ، t = top _ ، _ ، w ، h = الكاميرا # w = العرض ، h = الارتفاع إرجاع Rect (-l half_width ، -t half_height ، w ، h)
  • الحفاظ على حدود المستوى:
  • X = -TARGET_RECT.CENTER [0] WIN_WIDTH/2 y = -ragget_rect.center [1] win_height/2 camera.topleft = (pygame.vector2 ((x ، y)) - pygame.vector2 (camera.topleft)) * 0.06 # أضف بعض coolnes coolnes camera.x = max (-(camera.width win_width) ، min (0 ، camera.x)) camera.y = max (-(camera.hight-win_height) ، min (0 ، camera.y)) إرجاع الكاميرا

تطبيق التمرير على الكيانات: الكاميرا = الكاميرا (complex_camera ، total_level_width ، total_level_height) # تحديث الكاميرا camera.update (لاعب) # تطبيق التمرير على جميع الكيانات ل e في الكيانات: screen.blit (e.image ، camera.apply (e))

اعتبارات إضافية:

الاحتياجات.
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3