敌人在游戏中不会自行移动



好吧,所以我的敌人只有在我移动角色时才会移动,但有时它也会完全从游戏窗口中产生。还有背景、玩家和敌人。。。在我按下移动按钮之前不要弹出,我很抱歉这个lmfao也很抱歉我被告知要把它们放在那里提醒

import pygameimport random

pygame.init()

screen = pygame.display.set_mode((800, 600))

background = pygame.image.load("BackgroundImg.jpg")

pygame.display.set_caption("Real Hero")icon = pygame.image.load('Icon.png')pygame.display.set_icon(icon)

playerImg = pygame.image.load('Player.png')playerX = 370playerY = 480playerX_change = 0

enemyImg = pygame.image.load('Enemy.jpg')enemyX = random.randint(0, 746)enemyY = random.randint(50, 746)enemyX_change = 0.2enemyY_change = 40

def player(x, y):screen.blit(playerImg, (x, y))

def enemy(x, y):screen.blit(enemyImg, (x, y))

running = Truewhile running:

screen.fill((0, 0, 0))
# Background Image
screen.blit(background, (0, 0))
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 = -0.3
if event.key == pygame.K_RIGHT:
playerX_change = 0.3
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
playerX_change = 0
playerX += playerX_change
if playerX <= 0:
playerX = 0
elif playerX >= 736:
playerX = 736

enemyX += enemyX_change
if enemyX <= 0:
enemyX_change = 0.2
enemyY += enemyY_change
elif enemyX >= 736:
enemyX_change = -0.2
enemyY += enemyY_change
enemy(enemyX, enemyY)
player(playerX, playerY)
pygame.display.update()

为什么敌人只在按下移动键时移动,是因为你在if event.type == pygame.KEYDOWN:if语句中有敌人的移动代码。您也只是在按下移动键时更新屏幕,因为pygame.display.update()也在该if语句中。您需要将不应该只在按下if语句键时运行的任何代码移出。

最新更新