Menu
CoddyTech

מעבר מצד לצד של המסך

חלק מהיחידה לולאת המשחק במסלול ה-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.

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

challenge icon

אתגר

קל

אחרי pos += vel * dt, העבירו את הסלע לצד השני:

  1. מעל 500, pos.x הופך ל־-20; מתחת ל־-20, הוא הופך ל־500.
  2. מעל 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()
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה לולאת המשחק

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