但是当我结合我的代码执行该代码时,它永远不会停止更新,直到我停止移动鼠标
import pygame as py
import random as ra
py.init()
RED = py.Color(255,0,0)
sw = 800
sh = 400
Screen = py.display.set_mode((sw, sh))
width, height = Screen.get_size()
clock = py.time.Clock()
done = False
Sides = ["top","bottom","left","right"]
Weights = [width,width,height,height]
py.display.set_caption("Spaceship")
icon = py.image.load('battleship.png')
py.display.set_icon(icon)
playerX = 400
playerY = 200
playerx_Change = 0
playery_Change = 0
enemyimg = py.image.load("meteor.png")
def Player(x,y):
Screen.blit(icon, (x, y))
def Enemy(x,y):
Screen.blit(enemyimg, (x, y))
running = True
while running or not done:
for event in py.event.get():
if event.type == py.QUIT :
running = False
done = True
side = ra.choices(Sides, Weights)[0]
if side == "top":
y = 0
x = ra.randrange(width-4)
elif side == "bottom":
y = height -4
x = ra.randrange(width-4)
elif side == "left":
y = 0
x = ra.randrange(height-4)
elif side == "right":
y = width-4
x = ra.randrange(height-4)
if event.type == py.KEYDOWN:
if event.key == py.K_UP:
playery_Change = -1
if event.key == py.K_DOWN:
playery_Change = 1
if event.key == py.K_LEFT:
print("La tecla izquierda se ha activado")
playerx_Change = -1
if event.key == py.K_RIGHT:
playerx_Change = 1
print("La tecla derecha se ha accionado")
if event.type == py.KEYUP:
if event.key == py.K_LEFT or event.key == py.K_RIGHT:
playerx_Change = 0
if event.key == py.K_DOWN or event.key == py.K_UP:
playery_Change = 0
Screen.fill((40,40,50))
playerX += playerx_Change
playerY += playery_Change
if playerX <=0:
playerX = 0
if playerX >= sw -30:
playerX = sw -30
if playerY <=0:
playerY=0
if playerY >= sh -30:
playerY = sh - 30
Player(playerX,playerY)
py.draw.rect(Screen, RED, (x, y, 4, 4))
py.display.flip()
clock.tick(30)
py.display.update()