在for循环pygame中绘制多个图像

问题描述

我给你我的代码,希望你能解决

我正在尝试制作一款游戏,但对于我的第一波,我需要五个敌人,但我尝试使用 for 循环,但没有成功

我已经编码,如果它是第 1 波并且该波不进行,那么会产生 5 个敌人,但它甚至不会产生一个,所以请帮助我也是我有史以来第一个大型且没有教程的编码项目

import pygame,sys,random,time,itertools,timeit

pygame.init()

wave_is_going = False
wave = 1

hp_val = 3

playerX = 350
playerY = 350

enemyX = 200
enemyY = 200

up_key_down = False
down_key_down = False
right_key_down = False
left_key_down = False

screen = pygame.display.set_mode((700,700))
pygame.display.set_caption("a red blur and a guy")
screen.fill((50,20,164))

bg = pygame.image.load("assets/sprites/bg.jpg")

hp = pygame.image.load("assets/sprites/heart.png")
hp = pygame.transform.scale(hp,(50,50))

if hp_val == 3:
    screen.blit(hp,(0,0))
    screen.blit(hp,(25,0))
elif hp_val == 2:
    screen.blit(hp,0))
elif hp_val == 1:
    screen.blit(hp,0))

while True:
    player = pygame.image.load("assets/sprites/player2.0.png")
    player = pygame.transform.scale(player,(90,55))
    playerRect = player.get_rect(center=(playerX,playerY))

    enemy = pygame.image.load("assets/sprites/enemy.png")
    enemy = pygame.transform.scale(enemy,50))
    enemy_rect = enemy.get_rect(center=(enemyX,enemyY))

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_z or event.key == pygame.K_UP or event.key == pygame.K_w:
                 up_key_down = True
            if event.key == pygame.K_s or event.key == pygame.K_DOWN:
                 down_key_down = True
            if event.key == pygame.K_d or event.key == pygame.K_RIGHT:
                 right_key_down = True
            if event.key == pygame.K_q or event.key == pygame.K_LEFT or event.key == pygame.K_a:
                 left_key_down = True
        if event.type == pygame.KEYUP:
            if event.key == pygame.K_z or event.key == pygame.K_UP or event.key == pygame.K_w:
                up_key_down = False
            if event.key == pygame.K_s or event.key == pygame.K_DOWN:
                down_key_down = False
            if event.key == pygame.K_d or event.key == pygame.K_RIGHT:
                 right_key_down = False
            if event.key == pygame.K_q or event.key == pygame.K_LEFT or event.key == pygame.K_a:
                left_key_down = False

    if up_key_down == True:
        playerY -= 1
    if down_key_down == True:
        playerY += 1
    if right_key_down == True:
        playerX += 1
    if left_key_down == True:
        playerX -= 1

    if playerX >= 700:
        playerX = 1
    if playerX <= 0 :
        playerX = 699
    if playerY >= 700:
        playerY = 1
    if playerY <= 0:
        playerY = 699

    screen.blit(bg,(-100,-100))

    if hp_val == 3:
        screen.blit(hp,0))
        screen.blit(hp,0))
    elif hp_val == 2:
        screen.blit(hp,0))
    elif hp_val == 1:
        screen.blit(hp,0))

    screen.blit(player,playerRect)

    if wave == 1 and wave_is_going == False:
        for i in range(5):
             enemyX = random.randint(0,700)
             enemyY = random.randint(0,700)
             screen.blit(enemy,enemy_rect)
             wave_is_going = True

     if enemyX < playerX:
         enemyX += 0.5
     if enemyX > playerX:
         enemyX -= 0.5
     if enemyY < playerY:
         enemyY += 0.5
     if enemyY > playerY:
         enemyY -= 0.5

     pygame.display.update()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)