ابقَ على الشاشة
جزء من قسم حلقة اللعبة في رحلة Pygame على Coddy. الدرس 7 من 32.
استمر في الضغط على السهم الأيمن مدة كافية، وسيخرج المربع من النافذة. لإبقائه داخلها، حدّد نطاق x وy بعد تحريكهما.
تعطي min(a, b) العدد الأصغر، بينما تعطي max(a, b) العدد الأكبر. وباستخدامهما معًا، يبقى العدد بين حدّين:
x = max(0, min(x, 480 - 40))تمنع min(x, 440) x من تجاوز 440، وتمنع max(0, ...) x من النزول إلى ما دون 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()
جميع دروس حلقة اللعبة
1حرّك مربعًا
افتح نافذةاملأ الخلفيةتدرّب بنفسك: Playground لـ Pygame