gpt4 book ai didi

python - Pygame 中的关卡设计

转载 作者:太空宇宙 更新时间:2023-11-03 12:19:54 35 4
gpt4 key购买 nike

嘿——我正在尝试使用适用于 Python 的 Pygame 库设计我的第一款游戏,我想知道关卡设计的一般最佳实践是什么。我很想听听你们认为什么是用于管理关卡的良好面向对象设计模式。另外,我是 Python 的新手——谢谢!

最佳答案

在这种类型的游戏中,您的 map 是以图 block 形式表示的(我假设您所说的关卡是指一个单独的关卡,而不是管理您的所有关卡)。每 block 瓷砖都有

  • 关联图片(显示的样子)
  • 一种类型(即墙壁、地面、陷阱等)

当我在 Pygame 中创建基于图 block 的游戏时,我通常有一个包含当前 map 的 Map 类:

  • map 的 pygame.Surface(您将向显示器显示的内容)
  • 列表列表(即矩阵),其中每个项目都是一个 Tile 对象(我也做过一些游戏,其中您只有一个字符串告诉您它是什么类型的图 block ,然后您不需要一个单独的 Tile 类)

map 应该是相对静态的 - 你可以让陷阱在你踩到它们之后变成普通的瓷砖(这很容易 - 当你进行碰撞检测并且它被击中时,只需将该瓷砖更改为不同的瓷砖对象(大概一个空的图 block )),但是如果可以的话,您不希望 map 中出现字符或可移动的 block 。由于可移动方 block 有自己的移动规则,这不仅仅是改变一个瓷砖那么简单——你有一整套逻辑,至少有两个瓷砖必须改变(如果你可以将方 block 移到陷阱上——然后你必须分别记住它下面是什么——呸)。在我看来,为每个移动的对象和项目设置一个类会更容易。

简而言之,您有:

  • 平铺
  • map
  • block
  • 其他可移动物体/ Sprite

这基本上就是您的全部水平。对于多个级别,如果各个级别始终相同,您可以只拥有一个 Map 对象列表,每个级别一个。

关于python - Pygame 中的关卡设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1871672/

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