Elif و Else
جزء من قسم Python في نافذة لعبة في رحلة Pygame على Coddy. الدرس 12 من 32.
يمنح else عبارة if فرعًا ثانيًا يُنفَّذ عندما يكون الشرط خاطئًا. وتضيف elif، وهي اختصار لـ "else if"، مزيدًا من الشروط بينهما:
if moon_x < 200:
colour = (255, 170, 90)
elif moon_x < 440:
colour = (240, 230, 160)
else:
colour = (160, 190, 255)يفحص Python الشروط من الأعلى، وينفّذ أول فرع يكون شرطه صحيحًا، ويتخطّى البقية. عند x 100 يكون الشرطان الأول والثاني صحيحين، لكن الفرع الأول وحده هو الذي يُنفَّذ. ليس لـ else شرط: يُنفَّذ عندما لا يكون أيٌّ مما سبق صحيحًا.
تعمل عبارات if المنفصلة بطريقة مختلفة: يُفحَص كلٌّ منها. مع ثلاث عبارات if، سيتحوّل لون القمر عند x 100 إلى البرتقالي، ثم ستجعله العبارة الثانية أصفر من جديد.
هنا، colour متغيّر يحمل صفًّا. ارسم باستخدامه: pygame.draw.circle(screen, colour, (moon_x, moon_y), 50).
التحدي
متوسطلوّن القمر بحسب موقعه. في جزء التغيير، بعد المفاتيح:
- إذا كان
moon_x < 200، فعيّنcolourإلى اللون البرتقالي(255, 170, 90). - وإلا إذا كان
moon_x < 440، فعيّنه إلى اللون المعتاد(240, 230, 160). - وإلا فعيّنه إلى اللون الأزرق
(160, 190, 255). - ارسم القمر باستخدام
colour.
جرّب بنفسك
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