如何使用 python 和 pygame 创建一个对象的多个唯一实例并将它们添加到列表中?
这是 Train 类的代码:
class Train(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self) #call Sprite initializer
self.image, self.rect = load_image('train.bmp', -1)
...
这是我在主循环中创建单独的火车实例的地方:
trains = pygame.sprite.Group()
while True:
for event in pygame.event.get():
if event ...:
train = Train()
train.add(trains)
如何使火车的每个实例都是唯一的?
Here is the code for the Train class:
class Train(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self) #call Sprite initializer
self.image, self.rect = load_image('train.bmp', -1)
...
And here is where I create the individual train instances, within the main loop:
trains = pygame.sprite.Group()
while True:
for event in pygame.event.get():
if event ...:
train = Train()
train.add(trains)
How can I make each instance of train unique?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的代码创建了一个变量 train,但从不使用 train*s*。我将变量重命名为 train_list 以使其更清晰。
阅读 文档:pygame.sprite.Group
以及 piman 的 sprite pygame 教程
您可以定义 Train.update 以使用 Gas,因为 Sprite.update 由 SpriteGroup.update 调用
Your code creates a variable train, but never uses train*s*. I renamed the variable to train_list to make it clearer.
Read docs: pygame.sprite.Group
And piman's sprite pygame tutorial
You can define Train.update, to use gas, since Sprite.update is called by SpriteGroup.update
实际上,如果您需要识别一列火车,您可以为每个火车添加一个 ID,如下所示:
然后循环它们:
!伪代码 !
Actually, if you need to identify a train you could add a ID to every single one of them something like this:
and then loop them over:
! Pseudo code !