好吧,我的敵人只有在我移動我的角色時才會移動,但有時它也會完全從游戲窗口中產生。還有背景,玩家和敵人。。。在我按下移動按鈕之前不要彈出,我為此感到非常抱歉,我也很抱歉有人告訴我要把它們放在wtf上提醒我
import pygame
import 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 = 370
playerY = 480
playerX_change = 0
enemyImg = pygame.image.load('Enemy.jpg')
enemyX = random.randint(0, 746)
enemyY = random.randint(50, 746)
enemyX_change = 0.2
enemyY_change = 40
def player(x, y):
screen.blit(playerImg, (x, y))
def enemy(x, y):
screen.blit(enemyImg, (x, y))
running = True
while 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語句中按下一個鍵時才運行的代碼。