Maps 在pygame中将PNG文件用作交互式地图

Maps 在pygame中将PNG文件用作交互式地图,maps,pygame,Maps,Pygame,我和pygame一起工作。我想建立一个二维滚动游戏。我不想为了制作我的大地图而编程所有必要的矩形。是否可以使用png文件作为地图,并让精灵与图像的任何部分进行交互,就好像它是一个矩形?或者将图像导入并转换为矩形?提前谢谢 我假设通过交互,您主要指的是碰撞检测,即控制角色在地图上可以移动和不能移动的位置。这是一个非常广泛的话题,有很多可用的资源 查看pygame.mask模块。要完成您所描述的操作,您可以通过使用一种颜色覆盖层来创建单独的遮罩图像,例如,一种颜色用于无法通过的区域,另一种颜色用于可

我和pygame一起工作。我想建立一个二维滚动游戏。我不想为了制作我的大地图而编程所有必要的矩形。是否可以使用png文件作为地图,并让精灵与图像的任何部分进行交互,就好像它是一个矩形?或者将图像导入并转换为矩形?提前谢谢

我假设通过交互,您主要指的是碰撞检测,即控制角色在地图上可以移动和不能移动的位置。这是一个非常广泛的话题,有很多可用的资源

查看pygame.mask模块。要完成您所描述的操作,您可以通过使用一种颜色覆盖层来创建单独的遮罩图像,例如,一种颜色用于无法通过的区域,另一种颜色用于可以通过的区域。然后pygame.mask.from_threshold可以自动创建一个mask对象,用于检测精灵和关卡之间的冲突

作为一个非常简单的例子,考虑这个马里奥级别:

碰撞遮罩可能如下所示:

请注意,尽管这些盒子是关卡的一部分,但它们不会在遮罩上显示出来;这种方法只对完全静态的关卡有用。这些盒子可能是一个精灵,有自己的矩形/遮罩来检测碰撞。在这种情况下,管道将只是一个实体对象

还请注意,使用复杂遮罩的整个级别的一个大图像可能会导致性能问题。根据我的经验,Pygame并不擅长滚动大图像

tl;dr-在某种程度上这是可能的,但不会对性能友好