Menu
CoddyTech

المفاتيح تحرّك القمر

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

تخبرك pygame.key.get_pressed() بالمفاتيح المضغوط عليها في هذا الإطار. خزّن نتيجتها مرة واحدة في كل إطار، ثم افحص أحد المفاتيح:

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

تكون keys[pygame.K_LEFT] هي True ما دام مفتاح السهم الأيسر مضغوطًا، وFalse في غير ذلك، لذا يُنفَّذ if الموجود أسفلها في كل إطار يكون فيه المفتاح مضغوطًا. اضغط باستمرار على مفتاح السهم الأيمن لمدة ثانية واحدة، وسيتحرك القمر 240 بكسلًا.

لكل مفتاح اسم: K_UP، K_DOWN، K_SPACE، وK_a للحرف A، وK_d للحرف D.

استخدم عبارتي if منفصلتين، واحدة لكل مفتاح، لكي يُختبَر كل مفتاح على حدة. ضع عبارتي if في جزء التغيير، بعد حلقة الأحداث.

challenge icon

التحدي

سهل

حرّك القمر باستخدام مفاتيح الأسهم:

  1. في جزء التغيير، اقرأ المفاتيح باستخدام keys = pygame.key.get_pressed().
  2. أثناء الضغط على مفتاح السهم الأيسر، اطرح 4 من moon_x.
  3. أثناء الضغط على مفتاح السهم الأيمن، أضف 4 إلى moon_x.

جرّب بنفسك

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

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

    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