ابقَ على الشاشة
الدرس 7 من 40 في دورة اصنع ألعابًا باستخدام Pygame على Coddy.
استمر في الضغط على اليمين مدة كافية، وسيخرج المربع من النافذة. لإبقائه داخلها، قيّد x وy بعد تحريكهما.
تعطي min(a, b) العدد الأصغر، وتعطي max(a, b) العدد الأكبر. ويُستخدمان معًا لإبقاء عدد بين حدّين:
x = max(0, min(x, 480 - 40))تمنع min(x, 440) قيمة x من تجاوز 440، وتمنع max(0, ...) قيمتها من النزول عن 0. لماذا 440 وليس 480؟ تمثل x الجانب الأيسر من المربع، لذا يقع الجانب الأيمن عند x + 40. عند 440 يلامس الجانب الأيمن حافة النافذة.
وينطبق الأمر نفسه على y، مع ارتفاع النافذة.
التحدي
سهلبعد فحوصات الأسهم الأربعة وقبل التعبئة، أبقِ المربع داخل النافذة ذات الأبعاد 480 في 360: اجعل قيمة x بين 0 و440، وقيمة y بين 0 و320.
جرّب بنفسك
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Move the Square")
clock = pygame.time.Clock()
x, y = 220, 160
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
speed = 4
if keys[pygame.K_SPACE]:
speed = 8
if keys[pygame.K_LEFT]:
x -= speed
if keys[pygame.K_RIGHT]:
x += speed
if keys[pygame.K_UP]:
y -= speed
if keys[pygame.K_DOWN]:
y += speed
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (255, 196, 0), (x, y, 40, 40))
pygame.display.flip()
clock.tick(60)
pygame.quit()
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس اصنع ألعابًا باستخدام Pygame
تدرّب بنفسك: Playground لـ Pygame