Parılda
Coddy'nin Pygame Journey'sinin Oyun Penceresinde Python bölümünün bir parçası. Ders 30 / 32.
Gerçek yıldızlar titreşir. Burada her yıldız, arada sırada rastgele olarak tek bir kare boyunca kararır. Her karede her yıldız 1 ile 30 arasında bir sayı tutar ve sayı 1 olduğunda sönük çizilir:
for star in stars:
colour = (255, 255, 255)
if random.randint(1, 30) == 1:
colour = (110, 120, 170)
pygame.draw.circle(screen, colour, star, 3)Her yıldız için colour beyaz olarak başlar ve if onu yalnızca sayı 1 olduğunda değiştirir. 30 kareden biri her yıldız için saniyede yaklaşık iki kez eder ve her yıldız kendi sayısını tuttuğundan farklı anlarda titreşirler. Gökyüzünü canlı gösteren şey bu küçük, düzensiz değişimdir.
Programın en üstüne import random ekle. Burada rastgele sayı tutma işlemi çizim döngüsünde yer almalıdır çünkü seçimin her yıldız için her karede yeniden yapılması gerekir.
Görev
OrtaYıldızları pırıldat:
- En üste
import randomekle. - Yıldız döngüsünde her yıldızın
colourdeğerini beyaz olarak başlat:(255, 255, 255). random.randint(1, 30) == 1olduğunda, rengini soluklaştır:(110, 120, 170).- Yıldızı
colourile çiz.
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))
# Doldurma işleminden sonra çizimi burada yap.
pygame.draw.circle(screen, (240, 230, 160), (560, 80), 40)
pygame.draw.rect(screen, (14, 16, 30), (0, 430, 640, 50))
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 3)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Oyun Penceresinde Python bölümündeki tüm dersler
Kendi başına pratik yap: Pygame playground