وصل إلى الهدف
الدرس 8 من 40 في دورة اصنع ألعابًا باستخدام Pygame على Coddy.
تحتاج اللعبة إلى هدف. ارسم مربعًا أخضر في الزاوية السفلية اليمنى، وعندما يدخل مربع اللاعب إليه، يفوز اللاعب.
الهدف عند (420, 300) وأبعاده 60 في 60. يكون مربع اللاعب داخل الهدف عندما يكون جانبه الأيسر عند 420 أو أكثر، وأعلاه عند 300 أو أكثر. يجب أن يتحقق الشرطان، لذا اربطهما باستخدام and.
يجب أن يستمر الفوز. احتفظ به في متغير يبدأ بقيمة False ولا تتغير قيمته أبدًا إلا إلى True:
won = False
while running:
# حرّك المربع
if x >= 420 and y >= 300:
won = True
if won:
screen.fill((40, 110, 70))
else:
screen.fill((30, 30, 46))بمجرد أن تصبح قيمة won هي True، لا شيء يعيدها إلى قيمتها السابقة، لذا تظل الخلفية خضراء حتى لو غادر المربع الهدف.
التحدي
سهل- قبل الحلقة، عيّن
won = False. - بعد تحديد نطاق
xوy، عيّنwon = Trueعندما يكونx >= 420وy >= 300. - املأ الشاشة باللون
(40, 110, 70)عندما تكون قيمةwonصحيحة، وباللون(30, 30, 46)خلاف ذلك. - قبل رسم مربع اللاعب، ارسم الهدف: باللون الأخضر
(60, 200, 120)عند(420, 300, 60, 60).
جرّب بنفسك
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Move the Square")
clock = pygame.time.Clock()
x, y = 220, 160
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
speed = 4
if keys[pygame.K_SPACE]:
speed = 8
if keys[pygame.K_LEFT]:
x -= speed
if keys[pygame.K_RIGHT]:
x += speed
if keys[pygame.K_UP]:
y -= speed
if keys[pygame.K_DOWN]:
y += speed
x = max(0, min(x, 480 - 40))
y = max(0, min(y, 360 - 40))
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (255, 196, 0), (x, y, 40, 40))
pygame.display.flip()
clock.tick(60)
pygame.quit()
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس اصنع ألعابًا باستخدام Pygame
تدرّب بنفسك: Playground لـ Pygame