如何解决在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 举报,一经查实,本站将立刻删除。