Menu
CoddyTech

טעינת תמונה

חלק מהיחידה ספרייטים ותמונות במסלול ה-Pygame של Coddy. שיעור 1 מתוך 36.

משחקים מציירים תמונות, ולא רק צורות. תמונה מגיעה מקובץ תמונה, ו־pygame הופך את הקובץ ל־Surface, אותו סוג של דבר כמו החלון: רשת של פיקסלים שאפשר לצייר עליה.

ship = pygame.image.load("assets/images/ship.png").convert_alpha()

הנתיב הוא יחסי ל־main.py: למשחק יש תיקיית assets לצידה, והכרטיסייה Assets שלצד המשחק מציגה את כל הקבצים שבה.

convert_alpha() מעתיקה את התמונה לפורמט הפיקסלים של החלון, כך שהציור שלה בכל פריים מהיר, והיא שומרת על הפיקסלים השקופים שלה. הפעולה זקוקה לחלון, לכן טען תמונות אחרי set_mode. טען כל תמונה פעם אחת, לפני הלולאה: קריאת קובץ 60 פעמים בשנייה מאטה את המשחק.

כדי לצייר את התמונה, בצע לה blit אל החלון. המיקום קובע היכן תהיה הפינה השמאלית העליונה שלה:

screen.blit(ship, (288, 208))

בצע לה blit אחרי screen.fill(...), אחרת המילוי יצייר מעליה.

challenge icon

אתגר

קל
  1. אחרי set_mode, טען את assets/images/ship.png באמצעות .convert_alpha() לתוך משתנה בשם ship.
  2. בלולאה, אחרי המילוי, הצג את ship כך שהפינה השמאלית העליונה שלו תהיה בכתובת (288, 208). הספינה היא בגודל 64 על 64 פיקסלים, ולכן היא נמצאת במרכז החלון שגודלו 640 על 480.

נסו בעצמכם

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Space Images")
clock = pygame.time.Clock()

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill((20, 22, 40))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

כל השיעורים ביחידה ספרייטים ותמונות

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