Windows 的pygame 无法获得键盘输入如何解决?

这是一个未完成的小游戏
当我反复尝试让小方块运动时(block1)
这个程序始终没有响应
(当下按键时没有响应)
小方块不能动
(初步判断是 无法获得键盘输入)
我的运行环境不是mac
是windows。(网上只有mac的解决方法)
各位大神求解(ง •_•)ง

import sys
import pygame
import random

move_right = False
move_left = False

class Settings():
    def __init__(self):
        self.screen_width = 1200
        self.screen_height = 800
        self.bg_color = (245,222,179)


class character():
    def __init__(self, screen,path):
        self.screen = screen
        self.image = pygame.image.load(path)
        self.rect = self.image.get_rect()

        self.screen_rect = self.screen.get_rect()
        self.rect.centerx = self.screen_rect.centerx
        self.rect.bottom = self.screen_rect.bottom
        self.centerx = self.screen_rect.centerx

        self.move_right = False
        self.move_left = False

    def blitme(self):
        self.screen.blit(self.image, self.rect)

    def move(self):
        if self.move_left and self.rect.left > self.screen_rect.left:
            self.centerx -= 2
        if self.move_left and self.rect.right < self.screen_rect.width:
            self.centerx += 2
        self.rect.centerx = self.centerx

def check_event(character):
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit
            sys.exit()

        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_d:
                character.move_right = True
            elif event.key == pygame.K_a:
                character.move_left = True

        elif event.type == pygame.KEYUP:
            if event.key == pygame.K_d:
                character.move_right = False
            elif event.key == pygame.K_a:
                character.move_left = False

def update_screen(block1):
    block1.blitme()
    pygame.display.flip()

def run_game():
    pygame.init()
    settings = Settings()
    screen = pygame.display.set_mode((settings.screen_width,settings.screen_height)) #设置屏幕大小
    screen.fill(settings.bg_color) #背景颜色

    #导入道具以及人物
    block1 = character(screen,'D:\项目文件\pyhton项目\BlockFall\image\\block_blue.png') #这是不是最终的
    block2 = character(screen,'D:\项目文件\pyhton项目\BlockFall\image\\block_red.png') #这是不是最终的

    while True:
        check_event(character)
        block1.move()
        update_screen(block1)

run_game()
发布了1 篇原创文章 · 获赞 1 · 访问量 65

猜你喜欢

转载自blog.csdn.net/xyxhxx/article/details/104740648