Menu
CoddyTech

الالتفاف عند الحافة

جزء من قسم Python في نافذة لعبة في رحلة Pygame على Coddy. الدرس 10 من 32.

لا تنفّذ if أسطرها إلا عندما يكون الشرط صحيحًا:

if comet_x > 640:
    comet_x = 0

ينتهي الشرط بنقطتين. الأسطر الموجودة تحته مزاحة بمقدار 4 مسافات: فهي تتبع if. تختبر Python الشرط في كل إطار. ما دام المذنب داخل النافذة، يكون الشرط خطأً ولا يحدث شيء. عندما يتجاوز المذنب الحافة اليمنى، يصبح الشرط صحيحًا ويعود المذنب إلى اليسار.

تكون نتيجة المقارنة إما True أو False. تعني > أكبر من، وتعني < أصغر من، وتسأل == عمّا إذا كانت قيمتان متساويتين. تُسنِد علامة = واحدة قيمة؛ أما العلامتان فتجريان مقارنة.

اختبر نطاقًا مثل > 640، لا قيمةً دقيقة واحدة. يبدأ المذنب عند 50 ويتحرك 3 بكسلات في الإطار: 635، 638، 641. لا يصل أبدًا إلى 640، لذا لن يكون comet_x == 640 صحيحًا أبدًا.

challenge icon

التحدي

سهل

بعد السطر الذي يحرّك المذنب، أضف if: عندما تكون comet_x أكبر من 640، عيّن comet_x إلى 0. عندها يطير المذنب عبر النافذة مرارًا وتكرارًا.

جرّب بنفسك

import pygame

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

# هيّئ العناصر هنا، قبل حلقة اللعبة.
moon_x = 160
moon_y = 120
comet_x = 50
comet_y = 200

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

    # غيّر العناصر هنا، مرةً واحدةً في كل إطار.
    comet_x = comet_x + 3

    screen.fill((20, 24, 48))
    # ارسم هنا، بعد ملء الشاشة.
    pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)
    pygame.draw.circle(screen, (120, 200, 255), (comet_x, comet_y), 8)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

جميع دروس Python في نافذة لعبة

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