سقوط عشوائي
جزء من قسم حلقة اللعبة في رحلة Pygame على Coddy. الدرس 25 من 32.
عندما تسقط الكتلة إلى ما بعد الحافة السفلية، أعدها إلى أعلى الحافة العلوية لكي تسقط مجددًا. يكون أعلاها قد تجاوز الحافة السفلية عندما block.top > 360.
لجعل اللعبة أقل قابلية للتوقع، أسقطها في مكان عشوائي. تختار الوحدة random في Python أرقامًا: random.randint(0, 460) هو عدد صحيح من 0 إلى 460، شاملًا كليهما.
import random
if block.top > 360:
block.y = -20
block.x = random.randint(0, 460)لماذا 460؟ عرض الكتلة 20، لذا فإن قيمة x تساوي 460 تضع جانبها الأيمن عند حافة النافذة. وتضع y = -20 الكتلة فوق النافذة مباشرة، فتدخل منها من الأعلى.
التحدي
سهل- أضف
import randomفي الأعلى. - بعد سقوط الكتلة، عندما يكون
block.top > 360، عيّنblock.y = -20واجعلblock.xيساويrandom.randint(0, 460).
جرّب بنفسك
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Catch the Blocks")
clock = pygame.time.Clock()
basket = pygame.Rect(200, 330, 80, 16)
block = pygame.Rect(220, 0, 20, 20)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
basket.x -= 8
if keys[pygame.K_RIGHT]:
basket.x += 8
basket.clamp_ip(screen.get_rect())
block.y += 3
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (80, 160, 255), basket)
pygame.draw.rect(screen, (235, 80, 80), block)
pygame.display.flip()
clock.tick(60)
pygame.quit()
جميع دروس حلقة اللعبة
تدرّب بنفسك: Playground لـ Pygame