سقوط عشوائي
الدرس 11 من 40 في دورة اصنع ألعابًا باستخدام Pygame على Coddy.
عندما تسقط الكتلة إلى ما دون الحافة السفلية، أعدها إلى أعلى الحافة العلوية كي تسقط مرة أخرى. يكون أعلاها قد تجاوز الحافة السفلية عندما 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()
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس اصنع ألعابًا باستخدام Pygame
تدرّب بنفسك: Playground لـ Pygame