Menu
CoddyTech

العدّاء

جزء من قسم قواعد اللعبة في رحلة Pygame على Coddy. الدرس 23 من 29.

يبني هذا الفصل Sky Runner، وهي لعبة ركض لا نهائية. يبقى العداء بالقرب من الحافة اليسرى بينما تأتي العوائق من اليمين؛ اقفز فوقها لأطول مدة ممكنة. تُرسَم السماء والأرض. العداء عبارة عن كائن رسومي، كما في القسم 3:

class Runner(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = pygame.image.load("assets/images/player.png").convert_alpha()
        self.rect = self.image.get_rect(midbottom=(100, GROUND_Y))

يضع midbottom منتصف الحافة السفلية للصورة عند نقطة ما. قدما العداء عند أسفل صورته، لذا فإن midbottom=(100, GROUND_Y) يجعله يقف على الأرض عند x 100، مهما كان ارتفاعه.

GROUND_Y هو إحداثي y للحافة العلوية للأرض، ويساوي 260. يستخدمه كل ما يقف على الأرض، لذا فإن تحريك الأرض لاحقًا يتطلب تغييرًا واحدًا.

challenge icon

التحدي

سهل
  1. اكتب فئة كائن مرئي باسم Runner، تكون صورته assets/images/player.png ويكون موضع midbottom في المستطيل الخاص به عند (100، GROUND_Y).
  2. أنشئ كائنًا واحدًا باسم runner قبل الحلقة.
  3. ارسم runner.image عند runner.rect بعد رسم الأرض.

جرّب بنفسك

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 320))
pygame.display.set_caption("Sky Runner")
clock = pygame.time.Clock()

SKY = (140, 200, 240)
GROUND = (90, 160, 80)
GROUND_Y = 260

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill(SKY)
    pygame.draw.rect(screen, GROUND, (0, GROUND_Y, 640, 60))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

جميع دروس قواعد اللعبة

تدرّب بنفسك: Playground لـ Pygame