使用大写字母作为pygame控件的输入

时间:2013-11-08 23:19:40

标签: rotation keyboard controls pygame keypress

我有围绕x轴进行pygame绘制旋转的以下关键设置:

while done == False:
# ALL EVENT PROCESSING SHOULD GO BELOW THIS COMMENT
for event in pygame.event.get(): # User did something
    if event.type == pygame.QUIT: # If user clicked close
         done = True # Flag that we are done so we exit this loop
        # User pressed down on a key
keys = pygame.key.get_pressed()

 #X rotation clockwise
 if keys[pygame.K_x]:
 #rotate around the x axis
    angle_y = angle_y+.1

 if pygame.key.get_mods() & pygame.KMOD_LSHIFT:
    #X rotation counterclockwise
    if key[pygame.K_x]:
      angle_y = angle_y+.1

我想按住x键,我的图像将围绕x轴顺时针旋转 然后我想按住左移和x键(或大写字母X)并让图像逆时针旋转。

使用我当前的设置,即使我按住shift,它也只是顺时针方向移动。

1 个答案:

答案 0 :(得分:0)

在这两种情况下你都有angle_y = angle_y+.1 - PLUS

(您的代码未格式化)

我认为您还需要更改代码:

if keys[pygame.K_x]:
   if pygame.key.get_mods() & pygame.KMOD_LSHIFT:
      #X rotation counterclockwise
      angle_y = angle_y-.1
   else:
      #X rotation clockwise
      angle_y = angle_y+.1

在您的版本中,如果按left_shift + x,则if都为真

if keys[pygame.K_x]:是真的

if pygame.key.get_mods() & pygame.KMOD_LSHIFT: if key[pygame.K_x]:是真的