Menu
CoddyTech

انقر للإضافة

جزء من قسم 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 = []. وإذا أُنشئت داخل حلقة اللعبة، فستُفرغ في كل إطار وستختفي كل نجمة فورًا.

challenge icon

التحدي

سهل

في حلقة الأحداث، عند وصول حدث 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