إسقاطات عشوائية
الدرس 11 من 41 في دورة اصنع ألعابًا باستخدام 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
2الأحداث والتصادمات
السلةكتلة ساقطةتدرّب بنفسك: Playground لـ Pygame