Python 如何使矩形对象在屏幕上缓慢移动?

Python 如何使矩形对象在屏幕上缓慢移动?,python,object,pygame,move,blit,Python,Object,Pygame,Move,Blit,我是python编程新手,现在开始编写简单的“蛇”游戏。 我试着让蛇头在屏幕上移动 当按下箭头键时,头部应不停地朝该方向移动,直到垂直 箭头按下。 我不能让蛇头(长方形)在一个方向上不停地缓慢移动。 我尝试使用time.sleep()-->它使整个代码陷入困境。 我尝试使用for loop-->它只是使矩形快速传输到另一个方向 这是我的主要职能: 而不是GameOver: #创建10毫秒的时间延迟 pygame。时间。延迟(10) #获取游戏屏幕上的所有事件[用户的所有输入] #循环用户的活动并

我是python编程新手,现在开始编写简单的“蛇”游戏。 我试着让蛇头在屏幕上移动 当按下箭头键时,头部应不停地朝该方向移动,直到垂直 箭头按下。 我不能让蛇头(长方形)在一个方向上不停地缓慢移动。 我尝试使用time.sleep()-->它使整个代码陷入困境。 我尝试使用for loop-->它只是使矩形快速传输到另一个方向

这是我的主要职能:

而不是GameOver:
#创建10毫秒的时间延迟
pygame。时间。延迟(10)
#获取游戏屏幕上的所有事件[用户的所有输入]
#循环用户的活动并查看是否按下退出按钮。
对于pygame.event.get()中的事件:
#如果用户按下X按钮:
如果event.type==pygame.QUIT:
pygame.quit()
sys.exit()
#定义pygame中“get_pressed”方法的快捷方式名称:
keys=pygame.key.get_pressed()
#定义x位置
x=头部位置[0]
y=头部位置[1]
#如果他按左键
如果键[pygame.K_左]:
#通过常数减少位置
头部位置[0]-=头部速度
elif keys[pygame.K_RIGHT]:
#按常数递增位置
头部位置[0]+=头部速度
elif keys[pygame.K_UP]:
#按常数递增位置
头部位置[1]-=头部速度
elif keys[pygame.K_DOWN]:
#按常数递增位置
头部位置[1]+=头部速度
#如果头部通过屏幕边界,它会从另一侧弹出。
如果头部位置[0]>=宽度:
头部位置[0]=0
elif头部位置[0]<0:
头部位置[0]=宽度头部大小
elif头部位置[1]>=高度:
头部位置[1]=0
elif头部位置[1]<0:
头部位置[1]=高度-头部大小
使用模块控制每秒帧数。生成一个对象。如果将可选帧速率参数传递给,函数将延迟以使游戏运行速度低于给定的每秒滴答数:

clock=pygame.time.clock()
虽然没有结束:
时钟。滴答(10)#10:游戏以每秒10帧的速度运行
# [...]
使用模块控制每秒帧数。生成一个对象。如果将可选帧速率参数传递给,函数将延迟以使游戏运行速度低于给定的每秒滴答数:

clock=pygame.time.clock()
虽然没有结束:
时钟。滴答(10)#10:游戏以每秒10帧的速度运行
# [...]

如果您想让它在按一次键后以恒定速度朝一个方向移动,请按 右=假变量 然后做一个 键[pygame.K_YOURCHOICE]: 右=真

如果正确:
head_pos[1或0]-=head_speed

如果您希望在一次按键后使其以恒定速度在一个方向上移动,则进行 右=假变量 然后做一个 键[pygame.K_YOURCHOICE]: 右=真

如果正确:
head_pos[1或0]-=head_speed

感谢您的评论!事实上,我已经试过了,但它并没有让事情变得更好。更重要的是,我无法想出一种方法,在按下一个箭头键后,使对象在一个方向上连续缓慢移动。[我只能让它在每次按箭头键时移动恒定数量的帧。]@levi这不是评论,而是答案。如果这不能使事情变得更好,那么我误解了你的问题。您的问题不清楚,不明确。谢谢您的评论!事实上,我已经试过了,但它并没有让事情变得更好。更重要的是,我无法想出一种方法,在按下一个箭头键后,使对象在一个方向上连续缓慢移动。[我只能让它在每次按箭头键时移动恒定数量的帧。]@levi这不是评论,而是答案。如果这不能使事情变得更好,那么我误解了你的问题。你的问题既不清楚也不明确。