Menu
CoddyTech

מיקום באמצעות Rect

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

חישוב ידני של הפינה השמאלית העליונה דורש חיבור עבור כל תמונה שמציבים. כל Surface יכול לספק Rect בגודל שלו:

ship_rect = ship.get_rect(center=(320, 400))

get_rect() לבדו הוא Rect(0, 0, 64, 64). מילת מפתח ממקמת אותו: center, midbottom, topleft או כל נקודה אחרת שיש ל-Rect. כאן מרכז הספינה ממוקם ב-(320, 400), ו-pygame מחשב את הפינה: (288, 368).

ציירו את התמונה ב-Rect והיא תופיע בפינה השמאלית העליונה של ה-Rect:

screen.blit(ship, ship_rect)

כעת ה-Rect הוא המיקום של הספינה. שנו את ship_rect.x או את ship_rect.centery, ובפריים הבא הספינה תצויר שם. כך מזיזים כל תמונה במשחק: שומרים Rect, משנים את Rect ומציירים ב-Rect. זה גם ה-Rect שבו משתמשים לבדיקת התנגשויות, כמו ביחידה 2.

challenge icon

אתגר

קל
  1. אחרי טעינת ship, צרו את ship_rect = ship.get_rect(center=(320, 400)).
  2. הציגו את ship במיקום ship_rect במקום בנקודה קבועה.

נסו בעצמכם

import pygame

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

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

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

    screen.fill((20, 22, 40))
    screen.blit(ship, (288, 208))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

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

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