טעינת תמונה
חלק מהיחידה ספרייטים ותמונות במסלול ה-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(...), אחרת המילוי יצייר מעליה.
אתגר
קל- אחרי
set_mode, טען אתassets/images/ship.pngבאמצעות.convert_alpha()לתוך משתנה בשםship. - בלולאה, אחרי המילוי, הצג את
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()
כל השיעורים ביחידה ספרייטים ותמונות
5התנגשויות מדויקות ברמת הפיקסל
מלבנים מרגישים לא הוגניםמסכותספרייטים מדויקים ברמת הפיקסלתיבות פגיעה מעגליות3מחלקות לאובייקטים במשחק
המחלקה הראשונה שלךמתודותself הוא האובייקטרשימה של אובייקטיםאובייקטים עם תמונותתת־מחלקהתרגלו בעצמכם: Pygame אונליין