len ile Say
Coddy'nin Pygame Journey'sinin Oyun Penceresinde Python bölümünün bir parçası. Ders 26 / 32.
len(stars), listenin kaç öğe içerdiğini gösterir. Boş bir listenin uzunluğu 0'dır. Bunu bir sayı göstermek için kullan:
text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))Bir f-string, süslü parantezlerinin içinde bir çağrı da dâhil olmak üzere herhangi bir ifade içerebilir.
len bir sınır belirlemek için de kullanılabilir. Yalnızca yer olduğu sürece bir yıldız ekle:
if event.type == pygame.MOUSEBUTTONDOWN and len(stars) < 10:
stars.append(event.pos)Liste 10 yıldız içerdiğinde koşul yanlış olur, bu yüzden tıklamalar hiçbir şey yapmaz. Ekrandaki sayı ve sınır aynı listeyi okur, bu nedenle her zaman birbiriyle uyumludur.
Sınır, olay döngüsünde tıklama testiyle and kullanılarak birleştirilmiştir: ekleme yalnızca olay bir tıklamaysa ve yer varsa çalışır. len dizeler üzerinde de çalışır: len("Night") 5'tir.
Görev
OrtaYıldızları say ve ona kadar dur:
- Kurulum bölümünde
font = pygame.font.Font(None, 36)yap. - Çizim bölümünde, (20, 20) konumunda
(230, 230, 240)rengindef"Stars: {len(stars)}"göster. - Yalnızca
len(stars) < 10koşulu sağlanırken tıklamayla bir yıldız ekle.
Kendin dene
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Oyun döngüsünden önce gerekli hazırlıkları burada yap.
stars = []
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
stars.append(event.pos)
# Her karede bir kez değişiklikleri burada yap.
screen.fill((20, 24, 48))
# Ekranı doldurduktan sonra burada çizim yap.
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Oyun Penceresinde Python bölümündeki tüm dersler
6Şeylerin Listeleri
Yıldızların ListesiEklemek için Tıklalen ile SayBir Yıldızı KaldırRastgele SayılarKendi başına pratik yap: Pygame playground