Menu
CoddyTech

דעיכה והקטנה

חלק מהיחידה צליל ותחושת משחק במסלול ה-Pygame של Coddy. שיעור 10 מתוך 23.

ניצוץ שנשאר ללא שינוי עד שהוא נעלם נראה כמו נקודה שכובתה. ניצוצות אמיתיים מתקררים: הם מתכווצים ומשנים צבע כשהם דועכים. כבר יש לך מספר שמתאר זאת, ה־life של החלקיק. חשב את הגודל והצבע על פיו כשאתה מצייר.

הרדיוס יכול להשתנות ישירות לפי ה־life:

radius = p["life"] // 10 + 1

כשנותרו 40 פריימים, הרדיוס הוא 5; כשנותרו 9 או פחות, הוא 1. ה־+ 1 משאיר את הרדיוס על 1 לפחות: מעגל ברדיוס 0 לא מצויר כלל, והניצוץ היה נעלם מוקדם מדי.

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

if p["life"] > 25:
    color = (255, 220, 80)
elif p["life"] > 10:
    color = (255, 140, 40)
else:
    color = (180, 50, 40)

בדוק קודם את המספר הגדול ביותר. אם תכתוב את התנאים בסדר הפוך, גם life של 30 יקיים את התנאי life > 10, והענף הצהוב לעולם לא ירוץ.

challenge icon

אתגר

בינוני

מקש הרווח יוצר טבעת של 8 ניצוצות, שכל אחד מהם חי במשך 40 פריימים. גרמו להם להתקרר כשהם עפים:

  1. ציירו כל ניצוץ ברדיוס life // 10 + 1.
  2. צבעו אותו בצהוב (255, 220, 80) כל עוד חייו מעל 25, בכתום (255, 140, 40) כל עוד הם מעל 10, ובאדום כהה (180, 50, 40) לאחר מכן.

נסו בעצמכם

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Ring of Sparks")
clock = pygame.time.Clock()

DIRECTIONS = [(3, 0), (2, 2), (0, 3), (-2, 2), (-3, 0), (-2, -2), (0, -3), (2, -2)]
particles = []

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
            for vx, vy in DIRECTIONS:
                particles.append({"x": 240, "y": 180, "vx": vx, "vy": vy, "life": 40})

    for p in particles:
        p["x"] += p["vx"]
        p["y"] += p["vy"]
        p["life"] -= 1

    screen.fill((20, 20, 36))
    for p in particles:
        if p["life"] > 0:
            pygame.draw.circle(screen, (255, 220, 80), (p["x"], p["y"]), 4)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

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

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