Pygame objelerin etkileşimi

Başlatan olumsuz, 31 Ekim 2022 - 23:11:30

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

olumsuz

Selam hocam
İki küp var Mavi ve Yeşil renkli;
Mavi küple gelip yeşil küpü ittirmek isyorum.
Ben bir kod yazdım bu mavi küple yeşil küpü ittire biliyorum ama aralarında temas sorunu çıkıyor, mavi küple yeşil küpü alttan yukarıya ve soldan sağa ittirirken mavi tüp yeşil küpe tam temas etmiyor.

Aşağıdaki kodu çalıştırarak nedemek istediğimi daha iyi anlatabilirim.
Bu sonunu çözmeme yardımcı olurmusunuz? Şimdiden teşekkürler

import pygame
pygame.init()

size= width, height = 600,400

blue=(0,0,250)
green=(0,250,0)
black=(0,0,0)
speed=25

win=pygame.display.set_mode((size))

a1=pygame.Rect(200,200,50,50)#mavi.küp
a2=pygame.Rect(300,300,50,50)#yesil.küp

drm=True
while drm:

for event in pygame.event.get():
if event.type==pygame.KEYDOWN:
if event.key== pygame.K_d:
a1.x+=speed
if event.type==pygame.KEYDOWN:
if event.key== pygame.K_a:
a1.x-=speed
if event.type==pygame.KEYDOWN:
if event.key== pygame.K_w:
a1.y-=speed
if event.type==pygame.KEYDOWN:
if event.key== pygame.K_s:
a1.y+=speed

if a1.colliderect(a2):
if a1.midbottom>= a2.midtop:
a2.y += speed

elif  a1.midtop== a2.midbottom:
a2.centery-=speed

if a1.colliderect(a2):
if a1.midright>= a2.midleft:
a2.centerx+=speed

elif  a1.midleft== a2.midright:
a2.centerx-=speed


win.fill((black))
pygame.draw.rect(win,green,a2)#yeşil.küp
pygame.draw.rect(win,blue,a1)#mavi.küp
pygame.display.update()