【发布时间】:2021-11-02 18:32:05
【问题描述】:
我想制作一个游戏,玩家使用 Python 中的 pygame 模块点击鸭子。我想要 15 只鸭子,但我不想复制用于实例化鸭子并将其分配给变量 15 次的代码。我当前的代码如下,"eend" 是我用于鸭子的名称:
eend = Actor('eend')
eend._surf = pygame.transform.scale(eend._surf, (50, 50))
eend.pos = 425, 300
eend1 = Actor('eend')
eend1._surf = pygame.transform.scale(eend1._surf, (50, 50))
eend1.pos = 425, 300
eend2 = Actor('eend')
eend2._surf = pygame.transform.scale(eend2._surf, (50, 50))
eend2.pos = 425, 300
eend3 = Actor('eend')
eend3._surf = pygame.transform.scale(eend3._surf, (50, 50))
eend3.pos = 425, 300
eend4 = Actor('eend')
eend4._surf = pygame.transform.scale(eend4._surf, (50, 50))
eend4.pos = 425, 300
eend5 = Actor('eend')
eend5._surf = pygame.transform.scale(eend5._surf, (50, 50))
eend5.pos = 425, 300
eend6 = Actor('eend')
eend6._surf = pygame.transform.scale(eend6._surf, (50, 50))
eend6.pos = 425, 300
eend7 = Actor('eend')
eend7._surf = pygame.transform.scale(eend7._surf, (50, 50))
eend7.pos = 425, 300
eend8 = Actor('eend')
eend8._surf = pygame.transform.scale(eend8._surf, (50, 50))
eend8.pos = 425, 300
eend9 = Actor('eend')
eend9._surf = pygame.transform.scale(eend9._surf, (50, 50))
eend9.pos = 425, 300
eend10 = Actor('eend')
eend10._surf = pygame.transform.scale(eend10._surf, (50, 50))
eend10.pos = 425, 300
eend11 = Actor('eend')
eend11._surf = pygame.transform.scale(eend11._surf, (50, 50))
eend11.pos = 425, 300
eend12 = Actor('eend')
eend12._surf = pygame.transform.scale(eend12._surf, (50, 50))
eend12.pos = 425, 300
eend13 = Actor('eend')
eend13._surf = pygame.transform.scale(eend13._surf, (50, 50))
eend13.pos = 425, 300
eend14 = Actor('eend')
eend14._surf = pygame.transform.scale(eend14._surf, (50, 50))
eend14.pos = 425, 300
在不重复代码 15 次的情况下创建类 Actor 的多个实例的好方法是什么?
【问题讨论】:
-
你真的应该学习列表和循环......也许从这里开始:learnpython.org/en/Loops
-
您可以编写一个 for 循环并将您的 Actors 放在一个列表中,而不是 14 个类似的变量中。
标签: python list loops variable-assignment