قائمة من النجوم
جزء من قسم Python في نافذة لعبة في رحلة Pygame على Coddy. الدرس 24 من 32.
تحتوي القائمة على قيم كثيرة في متغير واحد، مرتبةً داخل أقواس مربعة:
stars = [(100, 80), (220, 160), (360, 100)]هنا، كل عنصر هو زوج مرتب يمثل موضعًا. يمثّل stars[0] العنصر الأول، (100, 80)، ويمثّل stars[1] العنصر الثاني. يبدأ العد من 0، كما في range.
يمكن لحلقة for المرور على قائمة. يأخذ متغير الحلقة كل عنصر بالتتابع:
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)الموضع زوج مرتب، لذا ينتقل star مباشرةً إلى المكان الذي يُمرَّر فيه المركز. أضف موضعًا إلى القائمة، وستظهر نجمة أخرى، من دون أي تغيير في الحلقة. القائمة هي ذاكرة اللعبة لما يظهر على الشاشة؛ وترسم الحلقة كل ما تحتويه.
التحدي
سهلارسم سماءً من خمس نجوم باستخدام قائمة:
- أضف
(360, 100)و(480, 200)و(580, 70)إلى نهايةstars. - استبدل السطر الذي يرسم
stars[0]بـfor star in stars:، وارسم كل نجمة على شكل دائرة بيضاء(255, 255, 255)نصف قطرها 5.
جرّب بنفسك
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# جهّز العناصر هنا، قبل حلقة اللعبة.
stars = [(100, 80), (220, 160)]
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# غيّر العناصر هنا، مرة واحدة في كل إطار.
screen.fill((20, 24, 48))
# ارسم هنا، بعد ملء الشاشة.
pygame.draw.circle(screen, (255, 255, 255), stars[0], 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
جميع دروس Python في نافذة لعبة
تدرّب بنفسك: Playground لـ Pygame