我是Python/Pygame的新手。我已經能夠在小測試程序中拼湊一些東西,但試圖掌握碰撞並沒有發生。我已經嘗試了多個教程,但是我覺得我需要在完全瞭解它之前將其完全分解。Pygame碰撞解釋
有人可以解釋像colliderect(Rect)是如何工作的? 我是否需要碰撞函數的類,或者我只需要兩個矩形並獲得結果?
我正在嘗試使用的代碼如下。我能夠製作兩個圖像,每個圖像都包含一個矩形,我假設碰撞只適用於精靈而不是圖像?我可以用我的鼠標控制其中一個圖像,並且當我將鼠標懸停並單擊靜態圖像時,我想觸發一次碰撞檢測。
任何幫助將不勝感激。
THX
〜牛逼
pygame.init()
clock = pygame.time.Clock()
size=width, height= 600,400
screen = pygame.display.set_mode(size)
rageface = pygame.image.load("rageface.jpg")
rageface = pygame.transform.scale(rageface,(100,100))
rageface2 = pygame.transform.scale(rageface,(100,100))
black = (100,0,0)
green = (0,150,150)
r=0
x=50
y=50
mx,my = pygame.mouse.get_pos()
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == MOUSEBUTTONDOWN:
mx,my = pygame.mouse.get_pos()
#colliderect(Rect) ????????????????????
screen.fill((r,0,0))
pygame.draw.rect(screen, black, [50, 50, 250, 100], 0)
pygame.draw.rect(screen, green, [mx-50, my-50, 250, 100], 0)
screen.blit(rageface2,(mx-50,my-50))
screen.blit(rageface,(x,y))
clock.tick(60)
pygame.display.flip()
非常酷!謝謝。這正是我需要的。 :)我得到它的工作。出於某種原因,當我使用surface.get_rect時,碰撞正在返回true,然後纔將圖像實際移動到彼此之上。無論如何,我會一直搞亂它,看看我能做些什麼。再次感謝! – Tun
是的,沒問題,Pygame起初可能有點混亂,但一旦你掌握了它,它真的很有趣!祝你好運! – Serial