我怎样才能使敌人的子弹循环不断地射击?

2024-03-29 08:19:58 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我可以让敌人射出一颗子弹,但我不能循环。我想让敌人不断地开枪,但我不知道怎么做。请帮忙。我对编程相当陌生,所以可能有些东西我应该知道,但我不知道,所以请在评论中随意发表

#Enemy
enemyImg = pygame.image.load("u.png")
enemyX = random.randint(0,736)
enemyY = random.randint(50,150)
enemyX_change = 0.4
enemyY_change = 35

#Enemy Bullet
ebulletImg = pygame.image.load("EnemyBullet.png")
ebulletX = (enemyX)
ebulletY = (enemyY)
ebulletX_change = 0.4
ebulletY_change = 0.1
ebullet_state = "ready"

def fire_ebullet(x,y):
    global ebullet_state
    ebullet_state = "fire"
    screen.blit(ebulletImg, (ebulletX,ebulletY))

def reload_ebullet(x,y):
    global ebullet_state
    ebullet_state = "ready"
    screen.blit(ebulletImg, (ebulletX,ebulletY))

我试着使用reload_ebullet函数(在最后一个if中)尝试循环它,但没有成功,敌人仍然发射了一颗子弹

#Enemy Movement
enemyX += enemyX_change
if enemyX <=0:
    enemyX_change = 0.4
    enemyY += enemyY_change
elif enemyX >=736:
    enemyX_change = -0.4
    enemyY += enemyY_change

#Enemy Bullet Movement
if ebulletY <=0:
    ebulletY =(enemyY)
    ebullet_state = "ready"

if ebullet_state == "ready":
    fire_ebullet(ebulletX,ebulletY)
    ebulletY += ebulletY_change
    reload_ebullet(ebulletX,ebulletY)

这是密码,我把敌人放进去,这样你就可以看到子弹从哪里来。我试图交换最后一个if-to-while,但没有成功