Mücevhere Tıkla
Coddy'nin Pygame Journey'sinin Oyun Döngüsü bölümünün bir parçası. Ders 14 / 32.
get_pos, işaretçinin nerede olduğunu söyler. Tıklama bir olaydır: fare düğmesine basıldığında, olay döngüsü o karede bir pygame.MOUSEBUTTONDOWN olayı alır. event.pos, tıklamanın gerçekleştiği yerdir.
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:
score += 1Mücevher, (gx, gy) noktasından başlayan 30'a 30'luk bir kareye sığar. x karenin sol ve sağ kenarları arasında, y ise üst ve alt kenarları arasındaysa tıklama mücevherin üzerindedir. Python'da "x, gx ile gx + 30 arasındadır" ifadesini gx <= x <= gx + 30 şeklinde yazabilirsin.
Toplanan bir mücevher, random.randint ile yeni bir yere sıçrar ve bir for döngüsü, her puan için bir tane olacak şekilde, puanı küçük pembe karelerden oluşan bir sıra olarak çizer.
Görev
Kolay- En üste
import randomve döngüden öncescore = 0ekle. MOUSEBUTTONDOWNolduğunda,event.posnoktası(gx, gy)ile(gx + 30, gy + 30)arasındaki karenin içindeyse:scoredeğerini 1 artır,gxdeğerinirandom.randint(15, 435)olarak vegydeğerinirandom.randint(55, 315)olarak ayarla.- Değerli taştan sonra skoru çiz:
range(score)içindeki heriiçin(10 + 10 * i, 14, 8, 8)konumunda pembe(240, 110, 180)bir dikdörtgen çiz.
Kendin dene
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
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()
Oyun Döngüsü bölümündeki tüm dersler
1Bir Kareyi Hareket Ettir
Bir Pencere AçArka Planı DoldurKendi başına pratik yap: Pygame playground