gpt4 book ai didi

python - 在pygame中使用键盘命令时出现问题

转载 作者:行者123 更新时间:2023-12-01 07:09:17 26 4
gpt4 key购买 nike

在进行一些游戏编程时,我遇到了键盘命令的问题。在我的代码中,我有一个食物栏和一个名为 money_bar 的银行变量。当我在游戏中按下一个键(例如 f)时,游戏中的食物条会增加,并且当我按下 f 时,游戏会从我的 Money_bar 中扣除 10 美元。
食物栏显示了我当前拥有的食物量,并且每秒都会减少。但是,似乎 event() 中的键盘命令都不起作用。我可以知道我的代码有什么问题吗?这是我的 food_bar 和 `money_bar 初始化:

def __init__(self):
pygame.init()
self.clock = pygame.time.Clock()
self.living = 1
self.screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption(TITLE)
self.time = pygame.time.get_ticks()
pygame.key.set_repeat(500, 100)
self.all_sprites = pygame.sprite.Group()
self.console = Console(self, 0)
self.player = Player(self, 390, 595)
self.work = Work(self, 450, 250)
self.food_station = Food_Station(self, 750, 200)
self.food = Food(self, 25, 20)
self.education = Education(self, 300, 10)
self.school = School(self, 100, 200)
self.family = Family(self, 600, 10)
self.money = Money(self, 800, 15)
initial_food = 100
self.food_bar = initial_food
initial_money = 0
self.money_bar = initial_money
initial_education = "Student"
self.education_level = initial_education
initial_family = 3
self.family_member = 3

这是我运行主要算法的地方:

    def run(self):
self.playing = True
self.hunger()
while self.playing:
self.dt = self.clock.tick(FPS) / 1000
self.events()
self.draw()
self.update()

这是我检查事件的方法(包括键盘命令)

    def events(self):
for event in pygame.event.get():
if event.type == pygame.QUIT:
self.quit()
if event.type == self.HUNGEREVENT:
self.food_bar = self.food_bar - 10
self.all_sprites.update()
pygame.display.flip()

if event.type == pygame.K_f:
self.money_bar = self.money_bar - 10
self.food_bar = self.food_bar + 15
self.all_sprites.update()
pygame.display.flip()

if event.type == pygame.K_ESCAPE:
self.quit()

提前致谢

最佳答案

虽然 pygame.K_f 是一个关键枚举器常量(请参阅 pygame.key ),但 event.type 的内容是事件枚举器常量(请参阅 pygame.event )。< br/>如果您想确定是否按下了某个键,则必须验证事件类型是否为 pygame.KEYDOWN (或用于按钮释放的 pygame.KEYUP )并且如果事件的 .key 属性等于键枚举器。例如:

for event in pygame.event.get():
if event.type == pygame.QUIT:
self.quit()

# [...]

if event.type == pygame.KEYDOWN:
if event.key == pygame.K_f:
# [...]

关于python - 在pygame中使用键盘命令时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58299480/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com