gpt4 book ai didi

python - Pygame 创建无限数量的敌人

转载 作者:行者123 更新时间:2023-12-04 07:47:48 25 4
gpt4 key购买 nike

关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

4 个月前关闭。




Improve this question




class Enemy:
def __init__(self, x, y):
self.x = x
self.y = y
self.speedx = 10
self.speedy = 10
self.randomint = random.randint(0, 3)

def draw(self, screen):
screen.blit(enemyImage, (self.x, self.y))

def move(self):
if self.randomint == 0:
self.x -= self.speedx
self.y -= self.speedy
if self.randomint == 1:
self.x += self.speedx
self.y -= self.speedy
if self.randomint == 2:
self.x -= self.speedx
self.y += self.speedy
if self.randomint == 3:
self.x += self.speedx
self.y += self.speedy
if self.x == 0 or self.x == 768:
self.speedx = -self.speedx
if self.y == 0 or self.y == 568:
self.speedy = -self.speedy

def drawGame():
screen.fill((255,255,255))
robot.draw(screen)
for bullet in robot.bullets:
bullet.drawBullet()
for enemy in enemies:
enemy.draw(screen)
pygame.time.delay(30)
pygame.display.update()

robot = Player(400, 300)
enemies = []

running = True
while running:

for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False


enemy = Enemy(400, 200)

enemies.append(enemy)
for enemy in enemies:
enemy.move()

userInput = pygame.key.get_pressed()
robot.shoot()
robot.movePlayer(userInput)

drawGame()
我认为这部分代码对于确定我的问题很有用。运行此代码会在指定的 x 和 y 值处无限生成敌人。由于我只调用 Enemy 类的一个实例,我认为只有一个敌人会以随机移动方向生成。为什么会发生这种情况?谢谢

最佳答案

您的问题似乎是由在您拥有的“运行时:”循环中调用敌人类引起的,这意味着对于该游戏循环的每次迭代,它都会无休止地生成敌人。调用敌人类并将其附加到该循环之外的列表中应该可以解决问题

robot = Player(400, 300)
enemy = Enemy(400, 200)
enemies = []
enemies.append(enemy)

running = True
while running:

for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False



for enemy in enemies:
enemy.move()

userInput = pygame.key.get_pressed()
robot.shoot()
robot.movePlayer(userInput)

drawGame()

关于python - Pygame 创建无限数量的敌人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67134207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com