Python中文
首页
教程
问答
标签
搜索
登录
注册
为什么我的正方形(蛇)只沿对角线移动?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在编写2个snake/cars,我的第一个snake/car使用WASD键盘格式,工作非常完美。 但我的第二条蛇/车,使用箭头键,只是在对角移动。 我希望两条蛇/车都能向各个方向移动(上、下、左、右和对角),但现在,第二条蛇/车只能向对角移动</p> <pre class="lang-py prettyprint-override"><code> #initialize variables for player 1 car1x = 250 car1y = 300 car1width = 20 car1height = 20 car1dx = 0 car1dy = 0 speed = 3 #initialize variables for player 2 car2x = 500 car2y = 300 car2width = 20 car2height = 20 car2dx = 0 car2dy = 0 speed = 3 screen.fill(WHITE) # set main loop to True so it will run main = True # main loop while main: for event in pygame.event.get(): # check for any events (i.e key press, mouse click etc.) if event.type ==pygame.QUIT: # check to see if it was "x" at top right of screen main = False # set the "main" variable to False to exit while loop if event.type ==pygame.KEYDOWN: if event.key == pygame.K_w: car1dx = 0 car1dy = -speed elif event.key == pygame.K_s: car1dx = 0 car1dy = speed elif event.key == pygame.K_a: car1dx = -speed car1dy = 0 elif event.key == pygame.K_d: car1dx = speed car1dy = 0 if event.key == pygame.K_UP: car2dx = 0 car2dy = -speed elif event.key == pygame.K_DOWN: car2dx = 0 car2dy = speed elif event.key == pygame.K_LEFT: car2dx = -speed car2dy = 0 elif event.key == pygame.K_RIGHT: car2dx = speed car2dy = 0 elif event.key == pygame.K_q: pygame.quit() if event.type == pygame.KEYUP: if event.key in (pygame.K_w, pygame.K_s): car1dx = 0 elif event.key in (pygame.K_a, pygame.K_d): car1dy = 0 if event.key in (pygame.K_UP, pygame.K_DOWN): car1dx = 0 elif event.key in (pygame.K_LEFT, pygame.K_RIGHT): car1dy = 0 # move the x and y positions of the player oldcar1x = car1x oldcar1y = car1y oldcar2x = car2x oldcar2y = car2y car1x = car1x + car1dx car1y = car1y + car1dy car2x = car2x + car2dx car2y = car2y + car2dx if car1x >= screenwidth: car1x = oldcar1x car1y = oldcar1y if car2x >= screenwidth: car2x = oldcar2x car2y = oldcar2y ``` </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>在最后的if语句中,似乎应该重置Car2的dx/dy的键控事件正在为Car1设置dx/dy值。这可能是您的bug的来源</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
pyVISA GPIB GET(组执行触发器)
1 回答
Pyvisa IOerror设备:Korad K3005d电源
7 回答
PyVISA mac OS X(山狮)安捷伦33250
6 回答
Pyvisa Pyusb无法加载大于1 MB的序列
4 回答
pyVisa RS232太慢
10 回答
PyVISA RS232超时错误(安捷伦电源)
2 回答
PyVISA SCPI命令和查询(值更新问题)
3 回答
PyVISA SerialInstrument需要硬重置才能在故障后连接
7 回答
pyvisa,未找到函数viOpen
9 回答
pyVISA:以编程方式将仪器返回到本地模式
7 回答
pyvisa:接口类型是什么意思?
8 回答
pyvisa.errors.VisaIOError:VI_ERROR_TMO(1073807339):操作完成前超时
9 回答
PyVisa“更复杂的示例”根本不运行Keithley 2400不理解的命令
7 回答
PyVisapy后端
3 回答
PyVISA不能写入超过7F的十六进制字符
10 回答
PYVISA中的ENUM模块和cStringIO模块
1 回答
PyVisa代码的图形用户界面
1 回答
Pyvisa使用按键电源超时
4 回答
PyVISA和Kethley 2701只能从一个通道获取结果
3 回答
PyVisa和Printing New D
7 回答