比imag小的pygame rect碰撞

2024-05-26 17:44:06 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在pygame中定义一个比图像小的rect碰撞检测? 我想有一个碰撞模式像第二个图像,但我有一个切割图像时,尝试设置宽度和高度在方法rect。在

enter image description here

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

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

如果我用宽度和高度来设置大小,我只得到第三张图像

^{pr2}$

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


Tags: 方法rect图像imageselfget宽度高度
2条回答

试着画一个全新的矩形,与图像后面的图像分开,但是如果图像是这样的话,谁的位置会一直设置为这个位置。在

似乎您正在使用sprite模块中内置的pygames。(如果我错了,请纠正我)

您可能知道每个精灵都由一个image组成(绘制在一个曲面上)和一个rect对象(设置位置和大小(!)在image中)。在

正如Luke Taylor建议的那样,您可以在您的player类中创建一个新的rect对象

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

…并将其位置(根据图形)设置为

^{pr2}$

每次你改变player的位置,你也必须调用这一行,所以你的self.collideRect矩形对象在屏幕上随着你的player移动“。在

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

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

相关问题 更多 >

    热门问题