在我的游戏中,我将角色移动。设置方法是:
if game_over_state == False:
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
pause = True
game_paused()
if event.key == pygame.K_LEFT:
player_x_change = -2
if event.key == pygame.K_RIGHT:
player_x_change = 2
if event.key == pygame.K_UP:
player_y_change = -2
if event.key == pygame.K_DOWN:
player_y_change = 2
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT
player_x_change = 0
if event.type == pygame.KEYUP:
player_y_change = 0
是否可以将其更改为while函数或其他方式,以便在释放箭头键(即使按住另一个箭头键时)时角色也不会停止移动?
当然,请不要在player_x_change
事件中重置player_y_change
和KEYUP
:
if game_over_state == False: if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: pause = True game_paused() if event.key == pygame.K_LEFT: player_x_change = -2 if event.key == pygame.K_RIGHT: player_x_change = 2 if event.key == pygame.K_UP: player_y_change = -2 if event.key == pygame.K_DOWN: player_y_change = 2 # DELETE #if event.type == pygame.KEYUP: # if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT # player_x_change = 0 # if event.type == pygame.KEYUP: # player_y_change = 0
注意,如果您不分别更改
player_x_change
的状态player_y_change
,则player_x_change
取决于最后按下的LEFT /RIGHT,而
注意,如果您希望角色仅沿一个方向(左,右,上或下)移动,则必须设置player_y_change
取决于最后按下的UP / DOWN键。player_x_change
或player_y_change
。例如:]]if game_over_state == False: if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: pause = True game_paused() if event.key == pygame.K_LEFT: player_x_change, player_y_change = -2, 0 if event.key == pygame.K_RIGHT: player_x_change, player_y_change = 2, 0 if event.key == pygame.K_UP: player_x_change, player_y_change = 0, -2 if event.key == pygame.K_DOWN: player_x_change, player_y_change = 0, 2