python 没有办法实现键盘输入

python没有办法实现键盘输入

很经典的python游戏--打飞机 无论是在pycharm还是在终端上都无法实现键盘操作 代码附上,希望大家帮忙解答一下谢谢

while True:\
    gf.check_events(ship)\
    ship.update()\
    gf.update_screen(ai_settings, screen,ship)\
def check_events(ship):\
    """ 响应按键和鼠标事件"""\
  for event in pygame.event.get():\
        if event.type == pygame.QUIT:\
            sys.exit()\
\
        elif event.type == pygame.KEYDOWN:\
            if event.key == pygame.K_RIGHT:\
                ship.moving_right = True\
 if event.key == pygame.K_LEFT:\
                ship.moving_left = True\
\
 elif event.type == pygame.KEYUP:\
            if event.key == pygame.K_RIGHT:\
                ship.moving_right = False\
 if event.key == pygame.K_LEFT:\
                ship.moving_left = False
def __init__(self,ai_settings,screen):\
    """初始化飞船并设置其初始位置"""\
  self.screen = screen\
    self.ai_settings = ai_settings\
    #加载飞船图像并获取其外接矩形\
  self.image = pygame.image.load('IMG_1926.jpg')\
    self.rect = self.image.get_rect()\
    self.screen_rect = screen.get_rect()\
\
    #将每艘飞船放在屏幕底部中央\
  self.rect.centerx = self.screen_rect.centerx\
    self.rect.bottom = self.screen_rect.bottom\
\
    #在飞船的属性center中存储小数值\
  self.center = float(self.rect.centerx)\
\
    #移动标志\
  self.moving_right = False\
  self.moving_left  = False
讨论数量: 1
Jason990420

没看到所有的程序, 有可能是你只定义新的游戏窗口, 但没打开一个新的游戏窗口, 所有的键盘输入及鼠标动作都被当作你目前窗口的输入.

import sys
import pygame

def check_keydown_events(event):
    if event.key == pygame.K_LEFT:
        print("key pressed: Left Key")
    elif event.key == pygame.K_RIGHT:
        print("key pressed: Right Key")
    elif event.key == pygame.K_q:
        print("Key pressed: Q/q")
        pygame.quit()
        sys.exit()

def check_keyup_events(event):
    if event.key == pygame.K_LEFT:
        print("key released: Left Key")
    elif event.key == pygame.K_RIGHT:
        print("key released: Right Key")

def check_events():
    while True:
        for event in pygame.event.get():
            if event.type == pygame.KEYDOWN:
                check_keydown_events(event)
            elif event.type == pygame.KEYUP:
                check_keyup_events(event)

pygame.init()
screen = pygame.display.set_mode((500,500))
pygame.display.set_caption("Testing ....... ")
pygame.display.flip()

check_events()
4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!