我在试着在我的乒乓球比赛中使我的球拍动作更流畅。我的player_paddle1运行平稳,只要我松开钥匙就会停下来。然而,我的另一个player_paddle2,它结合了相同的按键算法,具有另一个paddle,但没有这样做。即使我释放了密钥,它也会继续运行。
if game_option == "Two Player":
if event.type == KEYDOWN:
if event.key == K_UP:
player_paddle1.direction = -1
elif event.key == K_DOWN:
player_paddle1.direction = 1
if event.key == K_w:
player_paddle2.direction = -1
elif event.key == K_s:
player_paddle2.direction = 1
if event.type == KEYUP:
if event.key == K_UP and player_paddle1.direction == -1:
player_paddle1.direction = 0
elif event.key == K_DOWN and player_paddle1.direction == 1:
player_paddle1.direction = 0
if event.key == K_UP and player_paddle2.direction == -1:
print("The key is now up!")
player_paddle2.direction = 0
elif event.key == K_UP and player_paddle2.direction == 1:
player_paddle2.direction = 0此外,虽然向上键和向下键反应非常灵敏,但W和S键反应不太灵敏,这意味着按下键不会立即导致划桨运动。我该如何解决这个问题呢?
发布于 2017-11-30 04:11:34
您在KEYUP中检查第二个播放器的K_UP,但它必须是K_w和K_s。
此外,你不需要查看player_paddle2.direction
if event.type == KEYUP:
if event.key == K_UP:
player_paddle1.direction = 0
elif event.key == K_DOWN:
player_paddle1.direction = 0
elif event.key == K_w: # <-- there was K_UP
print("The key is now up!")
player_paddle2.direction = 0
elif event.key == K_s: # <-- there was K_UP
player_paddle2.direction = 0它可以更短
elif event.type == KEYUP:
if event.key in (K_UP, K_DOWN)
player_paddle1.direction = 0
elif event.key in (K_w, K_s):
player_paddle2.direction = 0 顺便说一句:你可以在某些地方使用elif。
https://stackoverflow.com/questions/47560867
复制相似问题