احصل على نقاط الجواهر
جزء من قسم حلقة اللعبة في رحلة 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 عندما تصيب النقرة الجوهرة. - بعد رسم الجوهرة، ارسم مستطيلاً وردياً
(240, 110, 180)عند(10 + 10 * i, 14, 8, 8)لكلiفيrange(score).
اضغط «العب» والتقط ثلاث جواهر: ستصطف ثلاث علامات وردية في أعلى اليسار. ثم اضغط «تحقق».
جرّب بنفسك
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()
جميع دروس حلقة اللعبة
تدرّب بنفسك: Playground لـ Pygame