小编Sun*_*Ago的帖子

在 Pygame 中检测多边形和矩形之间的碰撞

所以我想用 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)

python pygame collision-detection python-3.x 2d-games

6
推荐指数
1
解决办法
2883
查看次数