Menu
CoddyTech

שמירה על הניקוד

שיעור 13 מתוך 41 בקורס צרו משחקים עם Pygame של Coddy.

טקסט ב־pygame הוא תמונה של המילים. pygame.font.Font הופכת מחרוזת למשטח, ואת המשטח הזה מציירים באמצעות screen.blit.

font = pygame.font.Font(None, 32)

text = font.render(f"Score: {score}", True, (240, 240, 240))
screen.blit(text, (10, 10))

Font(None, 32) הוא הגופן המובנה של pygame, שגובהו 32 פיקסלים. יוצרים אותו פעם אחת, לפני הלולאה. render(text, True, color) מציירת את המילים; True מחליק את הקצוות שלהן. blit(surface, (x, y)) מעתיקה את התמונה אל המסך, כך שהפינה השמאלית העליונה שלה נמצאת ב־(x, y).

מרנדרים את הטקסט בתוך הלולאה, אחרי המילוי. הניקוד משתנה, ותמונה שנוצרה פעם אחת תמשיך להציג את המספר הישן.

challenge icon

אתגר

קל

ספרו את התפיסות שמופיעות על המסך.

  1. לפני הלולאה, צרו את font = pygame.font.Font(None, 32) ואת score = 0.
  2. הוסיפו 1 ל־score כשהסל תופס בלוק.
  3. אחרי ציור הבלוק, הציגו את f"Score: {score}" בצבע (240, 240, 240) והציגו אותו במיקום (10, 10).

לחצו על "שחק" ותפסו בלוק: יוצג Score: 1. לאחר מכן לחצו על "בדיקה".

נסו בעצמכם

import random
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
    if block.top > 360:
        block.y = -20
        block.x = random.randint(0, 460)
    if block.colliderect(basket):
        block.y = -20
        block.x = random.randint(0, 460)

    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

תרגלו בעצמכם: Pygame אונליין