Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我想连续画一条线,可以通过按键来转动_Python_Pygame - Fatal编程技术网

Python 我想连续画一条线,可以通过按键来转动

Python 我想连续画一条线,可以通过按键来转动,python,pygame,Python,Pygame,我是编程新手,想通过在pygame中重新创建tron来练习。但我不知道如何画出一条线,它将不断前进,并通过按键来转动。提前感谢您的帮助欢迎使用StackOverflow!你应该先试一试,当某件事不起作用时,再寻求帮助,这样我们就知道你做了什么,而不是解释如何做你已经做过的事情 然而,您需要一个沿同一方向移动的播放器,因此您需要一个用于播放器在屏幕上的位置及其方向/速度的变量 所以 player_pos=[200200]#开始位置 玩家水平=[1,0]#开始向右移动 现在在游戏循环中,您可以绘制

我是编程新手,想通过在pygame中重新创建tron来练习。但我不知道如何画出一条线,它将不断前进,并通过按键来转动。提前感谢您的帮助

欢迎使用StackOverflow!你应该先试一试,当某件事不起作用时,再寻求帮助,这样我们就知道你做了什么,而不是解释如何做你已经做过的事情

然而,您需要一个沿同一方向移动的播放器,因此您需要一个用于播放器在屏幕上的位置及其方向/速度的变量

所以

player_pos=[200200]#开始位置
玩家水平=[1,0]#开始向右移动
现在在游戏循环中,您可以绘制玩家并更新位置

运行时:#游戏循环
pygame.draw.circle(屏幕,(255,0,0),玩家位置,5)#绘制玩家
player_pos[0]+=player_vel[0]#更新播放器的x位置
player_pos[1]+=player_vel[1]#更新播放器的y位置
现在你想改变方向时,按下一个键,我用wasd的运动

pygame.event.get()中事件的
:
如果event.type==pygame.QUIT:
#停止游戏循环
运行=错误
pygame.quit()
elif event.type==pygame.KEYDOWN:
如果event.key==pygame.K\u d:
玩家等级=[1,0]#移动
如果event.key==pygame.K_a:
玩家等级=[-1,0]
如果event.key==pygame.K_w:
玩家等级=[0,-1]
如果event.key==pygame.K_:
玩家等级=[0,1]
按“播放”键会使玩家移动得非常快,因此为了降低速度,我们可以限制fps

clock=pygame.time.clock()
#在游戏循环中
时钟。勾选(100)#限制为每秒100帧
下面是所有的代码

导入pygame
pygame.init()
screen=pygame.display.set_模式((500500))#设置屏幕
球员位置=[200200]#起始位置
玩家水平=[1,0]#开始向右移动
clock=pygame.time.clock()
屏幕填充((255、255、255))
运行=真
运行时:#游戏循环
pygame.draw.circle(屏幕,(255,0,0),玩家位置,5)#绘制玩家
player_pos[0]+=player_vel[0]#更新播放器的x位置
player_pos[1]+=player_vel[1]#更新播放器的y位置
时钟滴答(100)
pygame.display.update()
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
#停止游戏循环
运行=错误
pygame.quit()
打破
elif event.type==pygame.KEYDOWN:
如果event.key==pygame.K\u d:
玩家等级=[1,0]
如果event.key==pygame.K_a:
玩家等级=[-1,0]
如果event.key==pygame.K_w:
玩家等级=[0,-1]
如果event.key==pygame.K_:
玩家等级=[0,1]

你可能想看看蛇游戏教程。只是出于兴趣,你为什么选择w、a、s、d键而不是箭头?我看到一些人这样做,但我不明白为什么。@Kingsley大多数游戏使用wasd移动,所以我想我已经习惯了。输入K_d而不是K_right也更快谢谢你帮我摆脱了困境。我只有一个问题,为什么你写running=True,而你本可以用True@hibob是的,我曾经这样做过,并且使用了
sys.exit()
,但是我的编程老师不喜欢它,说我的分数会因此而下降,而且它会停止意外的无限循环,现在这只是一种习惯。这也使得非程序员阅读起来稍微容易一些,这意味着除了我喜欢做的事情之外什么都没有