Menu
CoddyTech

صِل إلى الهدف

الدرس 8 من 41 في دورة اصنع ألعابًا باستخدام 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، لا شيء يعيدها إلى قيمتها السابقة، لذا تظل الخلفية خضراء حتى لو غادر المربع الهدف.

challenge icon

التحدي

سهل

حوِّل الشاشة إلى اللون الأخضر عندما يصل المربع إلى الهدف.

  1. أنشئ won = False قبل الحلقة. واجعل قيمته True عندما يكون x >= 420 وy >= 300.
  2. املأ الشاشة باللون (40, 110, 70) عندما تكون قيمة won صحيحة، وإلا فاستخدم (30, 30, 46).
  3. ارسم الهدف قبل المربع: باللون (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