[Python|Pygame] Kolizje
Dziś poruszę temat kolizji obiektów w Pygame. Kolizje to sytuacje, w których dwa lub więcej obiektów w przestrzeni zajmuje tę samą przestrzeń lub zbliża się do siebie tworząc interakcję. W kontekście gier i programowania, kolizje są jednym z wielu aspektów określających, jak różne elementy w grze zachowują się w relacji ze sobą. Istnieje kilka możliwości wykrywania kolizji, a w tym wpisie omówimy kolizje prostokątów.
Zerknij na poniższy przykład:
import pygame
import sys
pygame.init()
width, height = 800, 600
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Wykrywanie kolizji w Pygame")
color1 = (255, 0, 0)
color2 = (0, 0, 255)
rect1 = pygame.Rect(100, 100, 60, 60)
rect2 = pygame.Rect(400, 300, 60, 60)
speed = 5
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
rect1.x -= speed
if keys[pygame.K_RIGHT]:
rect1.x += speed
if keys[pygame.K_UP]:
rect1.y -= speed
if keys[pygame.K_DOWN]:
rect1.y += speed
if rect1.colliderect(rect2):
color1 = (0, 255, 0)
else:
color1 = (255, 0, 0)
screen.fill((255, 255, 255))
pygame.draw.rect(screen, color1, rect1)
pygame.draw.rect(screen, color2, rect2)
pygame.display.flip()
pygame.time.Clock().tick(30)
pygame.quit()
W powyższym przykładzie stworzone zostały dwa prostokąty z różnymi pozycjami. Po poruszeniu strzałkami prostokątem rect1 możemy wprowadź go w interakcję z prostokątem rect2. W Pygame do wykrywania kolizji służy metoda colliderect klasy Rect.
Komentarze
Prześlij komentarz
Dzięki za komentarz!