מעבר מצד לצד של המסך
חלק מהיחידה לולאת המשחק במסלול ה-Pygame של Coddy. שיעור 22 מתוך 32.
במשחקי חלל רבים, חללית או סלע שיוצאים מצד אחד של המסך חוזרים מהצד השני. זו גלישה מעבר לקצה וחזרה מהצד השני. הסלע כאן נסחף למעלה וימינה, ואחרי כמה שניות הוא נעלם לתמיד.
בדקו כל קצה אחרי התנועה. רדיוס הסלע הוא 20, לכן תנו לו לצאת לגמרי משדה הראייה לפני שהוא קופץ: אחרי 480 + 20 בצד ימין, הוא חוזר ב־-20, מחוץ לשדה הראייה מעבר לקצה השמאלי, ומחליק פנימה.
if pos.x > 500:
pos.x = -20
if pos.x < -20:
pos.x = 500כך גם לגבי y והגובה: אחרי 380 בתחתית הוא חוזר ב־-20, ומעל -20 הוא חוזר ב־380.
רק המיקום קופץ. המהירות נשארת, ולכן הסלע ממשיך להיסחף באותו כיוון אחרי שהוא חוזר מהקצה.
אתגר
קלאחרי pos += vel * dt, העבירו את הסלע לצד השני:
- מעל 500,
pos.xהופך ל־-20; מתחת ל־-20, הוא הופך ל־500. - מעל 380,
pos.yהופך ל־-20; מתחת ל־-20, הוא הופך ל־380.
נסו בעצמכם
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Drifting Rock")
clock = pygame.time.Clock()
pos = pygame.Vector2(240, 180)
vel = pygame.Vector2(120, -70)
dt = 0
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pos += vel * dt
screen.fill((20, 20, 34))
pygame.draw.circle(screen, (150, 150, 160), pos, 20)
pygame.display.flip()
dt = clock.tick(60) / 1000
pygame.quit()
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לולאת המשחק
תרגלו בעצמכם: Pygame אונליין