我i什么我写的这个pygame程序只有鼠标动的时候画面才会动?

import pygame, sys

pygame.init()  #初始化
size = width, height = 600, 400  #设置屏幕长宽
speed = [1,1]  #设置壁球速度
BLACK = 0, 0, 0  #设置背景颜色填充
screen = pygame.display.set_mode(size)  #构建窗口
pygame.display.set_caption("python壁球")  #窗口名称设置
ball = pygame.image.load("PYG02-ball.gif")  #导入壁球图片
ballrect = ball.get_rect()  #把图片套框
fps = 300  #设置帧率
fclock = pygame.time.Clock()  #导入时间控制


while True:  #构造死循环
    for event in pygame.event.get():  #游戏执行
        if event.type == pygame.QUIT:  #退出游戏
            sys.exit()
        elif event.type == pygame.KEYDOWN:  #设置按键调整速度
            if event.key ==pygame.K_LEFT:
                speed[0] = speed[0] if speed[0] == 0 else (abs(speed[0]) -1)* int(speed[0]/abs(speed[0]))
            elif event.key == pygame.K_RIGHT:
                speed[0] = speed[0] + 1 if speed[0] > 0 else speed[0] - 1
            elif event.key == pygame.K_UP:
                speed[1] = speed[1] + 1 if speed[1] > 0 else speed[1] - 1
            elif event.key == pygame.K_DOWN:
                speed[1] = speed[1] if speed[1] == 0 else (abs(speed[1]) -1)* int(speed[1]/abs(speed[1]))
        ballrect =ballrect.move(speed[0], speed[1])  #设置速度
        if ballrect.left < 0 or ballrect.right >width:  #设置反弹
            speed[0] = -speed[0]
        if ballrect.top < 0 or ballrect.bottom >height:
            speed[1] = -speed[1]
        
        screen.fill(BLACK)  #填充颜色
        screen.blit(ball, ballrect)  #刷新球
        pygame.display.update()  #屏幕刷新
        fclock.tick(fps)  #帧率刷新
        
        

应是ballrect =ballrect.move(speed[0], speed[1])这代码,你debug一下试试

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

问题解决了吗? 我用pycharm 也遇到了同样的问题