簡體   English   中英

pygame rect碰撞小於圖像

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM