如何解决没有敌人显示
当我运行这段代码时,屏幕上没有敌人(僵尸)弹出,但忍者(玩家)会(移动也有效)并且屏幕颜色正确。我在终端中没有收到任何错误。我正在使用树莓派,如果有帮助的话。我已经查找了一些答案,但它们要么产生相同的结果,要么给我错误。你能帮我吗?
import pygame
import random
from random import randint
pygame.init()
screen = pygame.display.set_mode((600,600))
pygame.display.set_caption('Zombies')
# player
playerImg = pygame.image.load('ninja.png')
playerX = 260
playerY = 500
playerX_change = 0
playerY_change = 0
# enemy
enemyImg = []
enemyX = []
enemyY = []
enemyX_change = []
enemyY_change = []
num_of_enemies = 6
for i in range(num_of_enemies):
enemyImg.append(pygame.image.load('zombie.png'))
enemyX.append(random.randint(0,535))
enemyY.append(random.randint(50,100))
enemyX_change.append(4)
enemyY_change.append(30)
# functions and classes
def player(x,y):
screen.blit(playerImg,(x,y))
def enemy(x,y,i):
screen.blit(enemyImg[i],y))
running = True
while running:
screen.fill((0,154,23))
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
playerX_change = -1
if event.key == pygame.K_RIGHT:
playerX_change = 1
if event.key == pygame.K_UP:
playerY_change = -1
if event.key == pygame.K_DOWN:
playerY_change = 1
if event.type == pygame.KEYUP:
if event.type == pygame.K_LEFT or pygame.K_RIGHT:
playerX_change = 0
if event.type == pygame.K_UP or pygame.K_DOWN:
playerY_change = 0
# Boundaries
if playerX <= 0:
playerX = 0
elif playerX >= 536:
playerX = 536
if playerY <= 0:
playerY = 0
elif playerY >= 536:
playerY = 536
for i in range(num_of_enemies):
enemyX[i] += enemyX_change[i]
if enemyX[i] <= 0:
enemyX_change[i] = 4
enemyY[i] += enemyY_change[i]
elif enemyX[i] >= 536:
enemyX_change[i] = -4
enemyY[i] += enemyY_change[i]
playerX += playerX_change
playerY += playerY_change
player(playerX,playerY)
pygame.display.update()
解决方法
你根本没有吸引敌人。你必须在一个循环中绘制敌人。遍历敌人并调用函数enemy(x,y,i)
:
while running:
# [...]
for i in range(num_of_enemies):
enemy(enemyX[i],enemyY[i],i)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。