Merkezi taşımanıza gerek yok. Dörtgenlerin 4 köşesi vardır. Bu 4 köşeyi belirli aralıkları oluştururak koşul cümlesi/cümleleri içerisinde kullanacak olursanız sorunu çözebilirsiniz. Hatta yeri gelmişken bir örnek paylaşayım.
import pygame
import time
res_x, res_y = 1000, 500
screen = pygame.display.set_mode((res_x, res_y))
pygame.init()
class SariDortgen:
def __init__(self):
self.x, self.y = 0, 0
self.width, self.height = 100, 100
class MaviDortgen:
def __init__(self):
self.x, self.y = 1000, 50
self.width, self.height = 100, 100
SD = SariDortgen()
MD = MaviDortgen()
def check_for_collision():
if (SD.x <= MD.x <= SD.x + SD.width or SD.x <= MD.x + SD.width <= SD.x + SD.width) and (SD.y <= MD.y <= SD.y + SD.height or SD.y <= MD.y + MD.height <= SD.y + SD.height):
return True
else:
return False
def main():
while True:
screen.fill((0, 0, 0))
SD.x += 1
MD.x -= 1
pygame.draw.rect(screen, (0, 0, 255), [SD.x, SD.y, SD.width, SD.height])
pygame.draw.rect(screen, (255, 255, 0), [MD.x, MD.y, MD.width, MD.height])
pygame.display.update()
if check_for_collision():
while True:
time.sleep(1)
main()
Bahsini ettiğim koşul cümlesi check_for_collision isimli fonksiyonun hemen altında yer alan kısım.