حرّك في كل إطار
جزء من قسم Python في نافذة لعبة في رحلة Pygame على Coddy. الدرس 7 من 32.
تُنفَّذ حلقة اللعبة 60 مرة في الثانية، لذا يُنفَّذ السطر في جزء «غيّر الأشياء هنا» مرة واحدة في كل إطار. استخدمه لتغيير متغير بمقدار بسيط في كل مرة:
comet_x = comet_x + 2اقرأه من اليمين: خذ القيمة في comet_x، وأضف إليها 2، ثم خزّن النتيجة مجددًا في comet_x. إذا كانت قيمته 40، فستصبح الآن 42. وفي الإطار التالي تصبح 44، ثم 46.
يُرسَم المذنب عند comet_x في كل إطار، لذا يُظهره كل إطار على بُعد 2 بكسل إضافيين إلى اليمين: 120 بكسلًا في الثانية. هكذا تتحرك الأشياء كلها في اللعبة: رقم يتغير بمقدار بسيط في كل إطار.
يوجد comet_x = 40 في جزء الإعداد، حيث يُنفَّذ مرة واحدة. أما داخل الحلقة، فسيُعيد المذنب إلى 40 في كل إطار، وسيظل المذنب ثابتًا.
لدى Python صيغة مختصرة: comet_x += 2 تؤدي الوظيفة نفسها.
التحدي
سهلاجعل المذنب يطير: في الجزء # Change things here, once a frame.، أضف 2 إلى comet_x في كل إطار، لكي يتحرك بمقدار 2 بكسل إلى اليمين في كل إطار.
جرّب بنفسك
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# هيّئ العناصر هنا، قبل حلقة اللعبة.
moon_x = 160
moon_y = 120
comet_x = 40
comet_y = 200
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.draw.circle(screen, (120, 200, 255), (comet_x, comet_y), 8)
pygame.display.flip()
clock.tick(60)
pygame.quit()
جميع دروس Python في نافذة لعبة
2الأعداد والمتغيرات
أعطِ قيمة اسمًاأجرِ العمليات الحسابيةحرّك في كل إطاركلمات على الشاشةالأعداد الصحيحة والنصفيةتدرّب بنفسك: Playground لـ Pygame