Menu
CoddyTech

احصل على نقاط الجواهر

جزء من قسم حلقة اللعبة في رحلة 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)، يزداد طول الصف بمقدار واحد في كل مرة تزداد فيها النتيجة.

challenge icon

التحدي

سهل

عُدَّ الجواهر واعرض العدد في الأعلى.

  1. أضف score = 0 قبل الحلقة، وأضف إليه 1 عندما تصيب النقرة الجوهرة.
  2. بعد رسم الجوهرة، ارسم مستطيلاً وردياً (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