הפנה לכיוון התנועה
חלק מהיחידה ספרייטים ותמונות במסלול ה-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 שומר על הערך האחרון שלו, ולכן החללית ממשיכה לפנות לכיוון שאליו טסה בפעם האחרונה.
אתגר
בינוני- לפני הלולאה, צרו את
ship_left: היפכו אתship_rightמשמאל לימין. - צרו את
image = ship_rightלפני הלולאה. - לחיצה ממושכת על החץ שמאלה קובעת את
image = ship_left; לחיצה ממושכת על החץ ימינה קובעת אתimage = ship_right. התנועה נשארת כפי שהיא. - ציירו את
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()
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה ספרייטים ותמונות
5התנגשויות מדויקות ברמת הפיקסל
מלבנים מרגישים לא הוגניםמסכותספרייטים מדויקים ברמת הפיקסלתיבות פגיעה מעגליות3מחלקות לאובייקטים במשחק
המחלקה הראשונה שלךמתודותself הוא האובייקטרשימה של אובייקטיםאובייקטים עם תמונותתת־מחלקהתרגלו בעצמכם: Pygame אונליין