所以我想用 pygame 制作一款我们中间类型的游戏。我刚刚开始,所以我没有太多东西,现在正在制作地图。然而,我正在努力解决的一件事是碰撞逻辑。该地图目前具有细长的八边形形状,但我认为无论形状如何,我都会使用类似 pygame 多边形的东西。当我运行现在的代码时,它检查我的玩家(pygame 矩形)和墙壁(pygame 多边形)之间的碰撞,它说:
TypeError: Argument must be rect style object
我发现这是因为 pygame 多边形返回一个矩形,但在碰撞检查器中没有以这种方式分类。我尝试过一个名为碰撞的库,并感谢碰撞检测付出了巨大的努力,但玩家仍然能够穿过墙壁。旁注:我保存了我使用这个库的代码,如果有人想看到它,也许可以改进我的错误。
无论如何,把这一切归结为:
我需要一种方法来检测多边形和矩形之间的碰撞(真的,真的最好在pygame中)
感谢您提供的任何帮助,如果您有问题/请求,请发表评论。
这是我的代码:
import pygame
pygame.init()
W, H=500, 500
screen = pygame.display.set_mode([500, 500])
running = True
bcg=(200, 200, 200)
red=(255, 0 ,0)
purp=(255, 0, 255)
wall=(100, 100, 100)
class player:
def bg(self):
screen.fill(bcg)
x,y=self.x,self.y
self.outer=(
(x,y),
(x+800, y),
(x+1200, y+200),
(x+1200, y+600),
(x+800, y+800),
(x, y+800),
(x-400, y+600),
(x-400, y+200),
(x,y),
(x, y+50),
(x-350, y+225),
(x-350, y+575),
(x, y+750),
(x+800, …Run Code Online (Sandbox Code Playgroud)