【发布时间】:2014-07-22 02:04:14
【问题描述】:
总的来说,我是 PyGame 和 python 的新用户。话虽如此,我已经创建了一些精灵并将它们放在一个组中。例如,
gems = pygame.sprite.Group()
for i in range (0,4):
gem = Gem()
all_sprite_list.add(gem)
gems.add(gem)
现在,我主要想通过按下特定键来操纵组中的一颗宝石。我目前正在通过为每个 gem 设置一个 id 属性并遍历该组来完成此操作,直到我将 id 与我想要操作的那个匹配。即:
if event.type == pygame.KEYDOWN and event.key == pygame.K_F1:
for gem in gems:
if gem.id == 1:
gem.state = normal
elif event.type == pygame.KEYDOWN and event.key == pygame.K_F2:
for gem in gems:
if gem.id == 2:
gem.state = normal
我知道这是一个肮脏肮脏的把戏,我确信有更好的方法,而不是遍历整个组。我查看了参考资料并尝试做类似
的事情gems.sprites().index(0)
无济于事。有什么建议么?
【问题讨论】:
-
您还可以将精灵保存在字典中并使用
id作为键。