1

我使用 PGU(Phil's Pygame Utilities)已经有一段时间了。它有一个名为 tdata 的字典,它在加载图块时作为参数传递

tdata = { tileno:(agroup, hit_handler, config)}

我正在制作一个 pacman 克隆,其中有 2 个组:玩家和幽灵,我想用相同类型的瓷砖进行碰撞检测。

例如,如果 tile no 是 2,我希望这个 tile 有一个组作为玩家和幽灵。我尝试执行以下操作:

tdata = {0x02 :('player', tile_hit_1, config), 0x02 : ('ghost', tile_hit_2, config)}

然而,在这样做时,它只为幽灵而不是玩家提供碰撞检测。

关于如何使用相同类型的瓷砖为玩家和幽灵进行碰撞检测的任何想法?

4

1 回答 1

0

我在以下位置查看了源代码:http ://code.google.com/p/pgu/

在 vid.py ( http://code.google.com/p/pgu/source/browse/trunk/pgu/vid.py ) 中有用于加载 tdata 信息的代码。

第 300 行:def tga_load_tiles(self,fname,size,tdata={}):

然后在第 324 和 325 行:

agroups,hit,config = tdata[n]
tile.agroups = self.string2groups(agroups)

因此,查看string2groups从第 369 行开始的定义。 agroups 参数是一个以逗号分隔的字符串。所以我认为你可以在字符串中输入多个组的名称。

尝试:

tdata = {0x02: ('player,ghost', tile_hit, config)}

于 2010-04-14T10:32:50.763 回答