[英]pygame rect collision smaller than image
如何在pygame中定義比圖像小的矩形碰撞檢測? 我想像第二張圖像一樣有碰撞模式,但是當嘗試在方法rect中設置寬度和高度時,我有一個切割圖像。
當我嘗試使用圖像大小設置時,我將碰撞檢測設為紅色
self.rect = pygame.rect.Rect(location, self.image.get_size())
如果我使用寬度和高度設置大小,我只有第三個圖像
self.rect = pygame.rect.Rect(location, (32, 150))
我真的不想使用像素完美碰撞,因為是最慢的碰撞檢測,所以有人知道如何使用Rect實現第二次圖像碰撞的方法? 謝謝。
看來你正在使用sprite
模塊內置的pygames。 (如果我錯了,請糾正我)
你可能知道,每個精靈的組成的image
(這是一個表面上繪制)和rect
對象 (設置位置和大小(!) image
)。
正如Luke Taylor建議的那樣,你可以在你的player
類中創建一個新的 rect
對象......
self.collideRect = pygame.rect.Rect((0, 0), (32, 150))
...並將其位置(根據您的圖形)設置為
self.collideRect.midbottom = self.rect.midbottom
每當你改變你的player
的位置時你也必須調用這一行,所以你的self.collideRect
rect對象隨着你的player
在屏幕上“移動” 。
要測試一個點(例如鼠標坐標)是否在self.collideRect
,請調用
if self.collideRect.collidepoint(x, y) == True:
print("You clicked on me!")
嘗試繪制一個與圖像后面的圖像分開的全新矩形,但是如果圖像的位置經常設置為該位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.