المفاتيح تحرّك القمر
جزء من قسم 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 في جزء التغيير، بعد حلقة الأحداث.
التحدي
سهلحرّك القمر باستخدام مفاتيح الأسهم:
- في جزء التغيير، اقرأ المفاتيح باستخدام
keys = pygame.key.get_pressed(). - أثناء الضغط على مفتاح السهم الأيسر، اطرح 4 من
moon_x. - أثناء الضغط على مفتاح السهم الأيمن، أضف 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