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 也遇到了同样的问题