回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>基本上,我正在编写一个“敌人”类,它从一个图像列表和一个位置号(o)中获取一个图像,并将其分配到屏幕上的位置。变量o最初设置为-1</p>
<p>我希望这样做的方式是,如果我创建最多3个敌方类的实例,那么它会将第一个实例分配给图像列表中的第一个图像,并将第一个位置分配给位置列表中的第一个位置,这样第一个将具有位置(1000,0)</p>
<p>这样做的目的是,我可以创建敌人,产卵在我的屏幕外缘,但我想控制多少我产卵</p>
<p>如果有更简单的方法来编码这个,请告诉我</p>
<pre><code> o = -1
class Enemy(sprite.Sprite):
def __init__(self, enemyImageList,o):
super().__init__()
self.image = transform.scale(image.load(enemyImageList[o]),(40,40))
self.rect = self.image.get_rect()
if o == 0:
self.rect[0] = 1000
self.rect[1] = 0
elif o == 1:
self.rect[0] = 1000
self.rect[1] = 100
elif o == 2:
self.rect[0] = 1000
self.rect[1] = 200
elif o == 3:
self.rect[0] = 1000
self.rect[1] = 300
elif o == 4:
self.rect[0] = 1000
self.rect[1] = 400
elif o == 5:
self.rect[0] = 1000
self.rect[1] = 500
elif o == 6:
self.rect[0] = 1000
self.rect[1] = 600
elif o == 7:
self.rect[0] = 1000
self.rect[1] = 700
elif o == 8:
self.rect[0] = 900
self.rect[1] = 0
elif o == 9:
self.rect[0] = 800
self.rect[1] = 0
elif o == 10:
self.rect[0] = 700
self.rect[1] = 0
elif o == 11:
self.rect[0] = 600
self.rect[1] = 0
elif o == 12:
self.rect[0] = 500
self.rect[1] = 0
elif o == 13:
self.rect[0] = 400
self.rect[1] = 0
elif o == 14:
self.rect[0] = 300
self.rect[1] = 0
elif o == 15:
self.rect[0] = 200
self.rect[1] = 0
elif o == 16:
self.rect[0] = 100
self.rect[1] = 0
elif o == 17:
self.rect[0] = 0
self.rect[1] = 0
# Set image to be a file on the system.
self.image.set_colorkey(BLACK)
# Set background to transparent.
def update(self):
if self.rect != player.rect:
if self.rect.x < player.rect.x:
self.rect.x += 1
if self.rect.x > player.rect.x:
self.rect.x -= 1
if self.rect.y < player.rect.y:
self.rect.y += 1
if self.rect.y > player.rect.y:
self.rect.y -= 1
def draw(screen, self):
screen.blit(self.image,self.rect)
enemySprite = sprite.Group()
enemy1 = Enemy(enemyImageList, o)
enemyList.append(enemy1)
enemySprite.add(enemy1)
o+=1
enemy2 = Enemy(enemyImageList, o)
enemyList.append(enemy2)
enemySprite.add(enemy2)
o+=1
enemy3 = Enemy(enemyImageList, o)
enemyList.append(enemy3)
enemySprite.add(enemy3)
o+=1
enemy4 = Enemy(enemyImageList, o)
enemyList.append(enemy4)
o+=1
enemy5 = Enemy(enemyImageList, o)
enemyList.append(enemy5)
o+=1
enemy6 = Enemy(enemyImageList, o)
enemyList.append(enemy6)
o+=1
enemy7 = Enemy(enemyImageList, o)
enemyList.append(enemy7)
o+=1
enemy8 = Enemy(enemyImageList, o)
enemyList.append(enemy8)
o+=1
enemy9 = Enemy(enemyImageList, o)
enemyList.append(enemy9)
o+=1
enemy10 = Enemy(enemyImageList, o)
enemyList.append(enemy10)
o+=1
enemy11= Enemy(enemyImageList, o)
enemyList.append(enemy11)
o+=1
enemy12= Enemy(enemyImageList, o)
enemyList.append(enemy12)
o+=1
enemy13= Enemy(enemyImageList, o)
enemyList.append(enemy13)
o+=1
enemy14= Enemy(enemyImageList, o)
enemyList.append(enemy14)
o+=1
enemy15= Enemy(enemyImageList, o)
enemyList.append(enemy15)
o+=1
enemy16= Enemy(enemyImageList, o)
enemyList.append(enemy16)
o+=1
enemy17= Enemy(enemyImageList, o)
enemyList.append(enemy17)
o+=1
enemy18= Enemy(enemyImageList, o)
enemyList.append(enemy18)
o+=1
enemy19= Enemy(enemyImageList, o)
enemyList.append(enemy19)
o+=1
enemy20= Enemy(enemyImageList, o)
enemyList.append(enemy20)
o+=1
enemy21= Enemy(enemyImageList, o)
enemyList.append(enemy21)
o+=1
enemy22= Enemy(enemyImageList, o)
enemyList.append(enemy22)
o+=1
enemy23= Enemy(enemyImageList, o)
enemyList.append(enemy23)
o+=1
enemy24= Enemy(enemyImageList, o)
enemyList.append(enemy24)
o+=1
enemy25= Enemy(enemyImageList, o)
enemyList.append(enemy25)
o+=1
enemy26= Enemy(enemyImageList, o)
enemyList.append(enemy26)
o+=1
enemy27= Enemy(enemyImageList, o)
enemyList.append(enemy27)
o+=1
enemy28= Enemy(enemyImageList, o)
enemyList.append(enemy28)
o+=1
enemy29 = Enemy(enemyImageList, o)
enemyList.append(enemy29)
o+=1
enemy30 = Enemy(enemyImageList, o)
enemyList.append(enemy30)
o+=1
</code></pre>