Menu
CoddyTech

הפנה לכיוון התנועה

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

החללית פונה למעלה בקובץ שלה. כשמסובבים אותה באמצעות rotate(ship, -90), היא פונה ימינה, מה שמתאים לחללית שטסה הצידה. כשהיא טסה שמאלה, היא אמורה לפנות שמאלה.

pygame.transform.flip(image, flip_x, flip_y) יוצרת עבורך עותק משוקף. True, False משקף אותה מימין לשמאל; False, True משקף אותה מלמעלה למטה.

ship_right = pygame.transform.rotate(ship, -90)
ship_left = pygame.transform.flip(ship_right, True, False)

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

if keys[pygame.K_LEFT]:
    ship_rect.x -= 5
    image = ship_left

ציירו את image בכל פריים. כשאף מקש אינו לחוץ, image שומר על הערך האחרון שלו, ולכן החללית ממשיכה לפנות לכיוון שאליו טסה בפעם האחרונה.

challenge icon

אתגר

בינוני
  1. לפני הלולאה, צרו את ship_left: היפכו את ship_right משמאל לימין.
  2. צרו את image = ship_right לפני הלולאה.
  3. לחיצה ממושכת על החץ שמאלה קובעת את image = ship_left; לחיצה ממושכת על החץ ימינה קובעת את image = ship_right. התנועה נשארת כפי שהיא.
  4. ציירו את image במיקום של ship_rect.

נסו בעצמכם

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Face the Way You Fly")
clock = pygame.time.Clock()

ship = pygame.image.load("assets/images/ship.png").convert_alpha()
ship_right = pygame.transform.rotate(ship, -90)
ship_rect = ship_right.get_rect(center=(320, 240))

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]:
        ship_rect.x -= 5
    if keys[pygame.K_RIGHT]:
        ship_rect.x += 5
    ship_rect.clamp_ip(screen.get_rect())

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

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

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

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

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