我试图在乒乓球比赛中使桨动作更加顺畅。我的player_paddle1具有平稳的动作,每当我放开钥匙时,都会停止。但是,我的另一个player_paddle2(包含相同的按键算法的另一个桨)没有这样做。即使我释放钥匙,它也会继续前进。
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键不太响应,这意味着,键盘不会立即导致桨运动。我该如何解决?
您检查了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
btw:您可以在某些地方使用elif
。