Menu
CoddyTech

And و Or

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

تربط or بين شرطين، وتكون صحيحة إذا كان أحدهما على الأقل صحيحًا. أما and فتكون صحيحة فقط عندما يكون كلاهما صحيحًا.

if keys[pygame.K_LEFT] or keys[pygame.K_a]:
    moon_x = moon_x - 4
if keys[pygame.K_RIGHT] and moon_x < 580:
    moon_x = moon_x + 4

تحرّك جملة if الأولى القمر إلى اليسار ما دام مفتاح Left أو A مضغوطًا: فكلا المفتاحين يؤدي الغرض. أما الجملة الثانية فتحرّكه إلى اليمين فقط ما دام مفتاح Right مضغوطًا والقمر إلى يسار الموضع x 580، لذا يتوقف قبل حافة النافذة.

تحوّل not القيمة True إلى False: يكون not keys[pygame.K_LEFT] صحيحًا عندما يكون مفتاح Left غير مضغوط.

challenge icon

التحدي

متوسط

غيّر اختباري المفتاحين:

  1. يؤدي الضغط على A إلى تحريك القمر إلى اليسار أيضًا، مثل مفتاح Left. استخدم or.
  2. يحرّك مفتاح Right القمر فقط ما دام moon_x < 580، لذا يتوقف عند x 580. استخدم and.

جرّب بنفسك

import pygame

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

# هيّئ الأشياء هنا، قبل حلقة اللعبة.
moon_x = 320
moon_y = 240

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

    # غيّر الأشياء هنا، مرة واحدة في كل إطار.
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        moon_x = moon_x - 4
    if keys[pygame.K_RIGHT]:
        moon_x = moon_x + 4

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

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

pygame.quit()

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

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