Menu
CoddyTech

صحيح أم خطأ

جزء من قسم Python في نافذة لعبة في رحلة Pygame على Coddy. الدرس 14 من 32.

True وFalse قيمتان مستقلتان تُسمّيان القيم المنطقية. يمكن لمتغير أن يحمل إحداهما، مثل المفتاح:

lamp_on = False

يمكن لعبارة if اختبارها مباشرةً: تعمل if lamp_on: عندما تكون قيمتها True. تعكسها not، لذا تبدّل lamp_on = not lamp_on حالة المصباح.

يحتاج المفتاح إلى ضغطة على المفتاح، لا إلى إبقائه مضغوطًا. تكون get_pressed() بقيمة True في كل إطار يكون فيه المفتاح مضغوطًا، لذا ستبدّل حالة المصباح 60 مرة في الثانية. تحدث الضغطة مرة واحدة، على شكل حدث KEYDOWN، في حلقة الأحداث عند بداية حلقة اللعبة:

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        running = False
    if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
        lamp_on = not lamp_on

يشرح القسم 2 الأحداث بالكامل. في الوقت الحالي: يبيّن event.type ما الذي حدث، ويبيّن event.key المفتاح الذي ضُغط.

challenge icon

التحدي

متوسط

اجعل مفتاح المسافة يبدّل حالة المصباح:

  1. في جزء الإعداد، اجعل lamp_on = False.
  2. في حلقة الأحداث، عند وصول حدث KEYDOWN للمفتاح K_SPACE، اجعل lamp_on = not lamp_on.
  3. ارسم الضوء عند (320, 290) بنصف قطر 30: (255, 220, 100) عندما تكون قيمة lamp_on هي True، وإلا فاستخدم (70, 70, 90).

جرّب بنفسك

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# هيّئ العناصر هنا قبل حلقة اللعبة.

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # عدّل العناصر هنا مرة واحدة لكل إطار.

    screen.fill((20, 24, 48))
    # ارسم هنا بعد ملء الشاشة.
    pygame.draw.rect(screen, (90, 90, 110), (310, 300, 20, 180))
    pygame.draw.circle(screen, (70, 70, 90), (320, 290), 30)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Python في نافذة لعبة

تدرّب بنفسك: Playground لـ Pygame