סיימו את המשחק שלכם
שיעור 41 מתוך 41 בקורס צרו משחקים עם Pygame של Coddy.
עכשיו צעדים 3 עד 5: אתגר, סיום וטקסט. Rock Dodge שומר את הסלעים שלו ברשימה של Rects: סלע חדש בכל 400 ms, וסלעים רבים על המסך בו-זמנית.
rocks = []
# בעת אירוע של הטיימר NEW_ROCK:
rocks.append(pygame.Rect(random.randint(0, 450), -30, 30, 30))
# בכל פריים:
for rock in rocks:
rock.y += 5
if rock.colliderect(player):
state = "lost"
rocks = [rock for rock in rocks if rock.top < 360]השורה האחרונה היא יצירת רשימה באמצעות הבנת רשימה: רשימה חדשה שמכילה רק את הסלעים שעדיין על המסך, כך שהרשימה לא תגדל לנצח.
מחרוזת state, שערכה הוא "playing", "lost" או "won", קובעת מה קורה בכל פריים, כמו ב-Sky Runner. ו-pygame.time.get_ticks() נותן את מספר אלפיות השנייה שחלפו מאז שהמשחק התחיל, וכך אפשר ליצור טיימר: שרדו 20 שניות כדי לנצח.
המשחק שלך יכול להשתמש בכל מה שלמדת בקורס הזה, ומסלול Pygame מציג עוד: דמויות, תמונות, צלילים, תפריטים, שיאים ומפות.
תנו למשחק שלכם אופי משלכם: שנו את הצבעים, המהירויות והכללים. ואז שחקו בו. אם קשה מדי לנצח או שקל מדי להפסיד, שנו את המספרים עד שהוא יהיה מהנה.
אתגר
קלסיים את המשחק שלך.
- הוסף משהו שזז בעצמו.
- הצג טקסט על המסך, כמו ניקוד או טיימר.
- תן לו סוף: דרך לנצח, דרך להפסיד או את שניהם.
לחץ על "שחק": משהו זז בעצמו והטקסט שלך מופיע. לאחר מכן לחץ על "בדיקה".
נסו בעצמכם
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Rock Dodge")
clock = pygame.time.Clock()
player = pygame.Rect(220, 320, 40, 20)
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]:
player.x -= 7
if keys[pygame.K_RIGHT]:
player.x += 7
player.clamp_ip(screen.get_rect())
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (80, 160, 255), player)
pygame.display.flip()
clock.tick(60)
pygame.quit()
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה צרו משחקים עם Pygame
תרגלו בעצמכם: Pygame אונליין