צבור נקודות על היהלומים
חלק מהיחידה לולאת המשחק במסלול ה-Pygame של Coddy. שיעור 15 מתוך 35.
במשחק צריך להיות ניקוד. שמרו אותו במשתנה שנוצר לפני הלולאה, score = 0, והוסיפו 1 באמצעות score += 1 בכל פעם שהשחקן תופס אבן חן.
במשחק הזה הניקוד מוצג כשורה של ריבועים קטנים, אחד לכל נקודה. לולאת for מציירת שורה של כל דבר: כאן, שלושה עיגולים במרחק של 30 פיקסלים זה מזה.
for i in range(3):
pygame.draw.circle(screen, (255, 200, 0), (20 + 30 * i, 20), 10)במעבר הראשון i הוא 0, אחר כך 1 ואז 2, כך שכל עיגול ממוקם 30 פיקסלים ימינה מקודמו. באמצעות range(score) השורה מתארכת בעיגול אחד בכל פעם שהניקוד עולה.
אתגר
קלספרו את אבני החן והציגו את הספירה למעלה.
- הוסיפו
score = 0לפני הלולאה, והוסיפו לו 1 כאשר לחיצה פוגעת באבן החן. - לאחר ציור אבן החן, עבור כל
iב-range(score), ציירו מלבן ורוד בצבע(240, 110, 180)במיקום(10 + 10 * i, 14, 8, 8).
לחצו על "שחק" ותפסו שלוש אבני חן: שלושה סימנים ורודים מסתדרים בפינה השמאלית העליונה. ואז לחצו על "בדיקה".
נסו בעצמכם
import random
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Gem Hunt")
clock = pygame.time.Clock()
gx, gy = 225, 165
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEBUTTONDOWN:
x, y = event.pos
if gx <= x <= gx + 30 and gy <= y <= gy + 30:
gx = random.randint(15, 435)
gy = random.randint(55, 315)
screen.fill((30, 30, 46))
gem_points = [(gx + 15, gy), (gx + 30, gy + 15), (gx + 15, gy + 30), (gx, gy + 15)]
pygame.draw.polygon(screen, (80, 220, 255), gem_points)
mouse_x, mouse_y = pygame.mouse.get_pos()
pygame.draw.circle(screen, (240, 240, 240), (mouse_x, mouse_y), 10, 2)
pygame.display.flip()
clock.tick(60)
pygame.quit()
כל השיעורים ביחידה לולאת המשחק
3העכבר
עקוב אחר הסמןלחץ על היהלוםתרגלו בעצמכם: Pygame אונליין