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