العدّاء
جزء من قسم قواعد اللعبة في رحلة 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. يستخدمه كل ما يقف على الأرض، لذا فإن تحريك الأرض لاحقًا يتطلب تغييرًا واحدًا.
التحدي
سهل- اكتب فئة كائن مرئي باسم
Runner، تكون صورتهassets/images/player.pngويكون موضعmidbottomفي المستطيل الخاص به عند (100،GROUND_Y). - أنشئ كائنًا واحدًا باسم
runnerقبل الحلقة. - ارسم
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