gpt4 book ai didi

python - pygame矩形碰撞小于图像

转载 作者:行者123 更新时间:2023-11-28 18:39:10 30 4
gpt4 key购买 nike

如何在 pygame 中定义小于图像的矩形碰撞检测?我想要像第二张图片那样的碰撞图案,但是当我尝试在方法 rect 中设置宽度和高度时,我得到了一张剪切图片。

enter image description here

当我尝试使用图像大小进行设置时,我的碰撞检测显示为红色

    self.rect = pygame.rect.Rect(location, self.image.get_size())

如果我使用宽度和高度设置尺寸,我只有第三张图片

    self.rect = pygame.rect.Rect(location, (32, 150))

我真的不想使用像素完美碰撞,因为它是最慢的碰撞检测,所以有人知道如何使用 Rect 实现第二种图像碰撞方法?谢谢。

最佳答案

看来您正在使用 sprite 模块中内置的 pygames。 (如有错误请指正)

您可能知道每个 Sprite 都包含一个图像(绘制在表面上)和一个rect 对象(设置 image 的位置和大小 (!))。

正如 Luke Taylor 所建议的,您可以在 player 类中创建一个new rect 对象……

self.collideRect =  pygame.rect.Rect((0, 0), (32, 150))

...并将其位置(根据您的图形)设置为

self.collideRect.midbottom = self.rect.midbottom

每次你改变你的player的位置,你也必须调用这一行,所以你的self.collideRect rect对象“移动”在屏幕上显示您的播放器

要测试一个点(例如鼠标坐标)是否在 self.collideRect 内,请调用

if self.collideRect.collidepoint(x, y) == True:
print("You clicked on me!")

关于python - pygame矩形碰撞小于图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28805271/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com