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 غير مضغوط.
التحدي
متوسطغيّر اختباري المفتاحين:
- يؤدي الضغط على A إلى تحريك القمر إلى اليسار أيضًا، مثل مفتاح Left. استخدم
or. - يحرّك مفتاح 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