使用事件驱动方法来检测按键,而不是轮询。这种方法避免了一直检查按键是否按下所导致的CPU占用率。
以下是Python的示例代码:
import pygame
pygame.init()
# 设置屏幕
screen = pygame.display.set_mode((800, 600))
# 初始化按键状态
key_pressed = {pygame.K_w: False, pygame.K_a: False, pygame.K_s: False, pygame.K_d: False}
# 处理按键事件
def handle_input_events():
for event in pygame.event.get():
# 退出事件
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# 按键按下事件
elif event.type == pygame.KEYDOWN:
if event.key in key_pressed:
key_pressed[event.key] = True
# 按键松开事件
elif event.type == pygame.KEYUP:
if event.key in key_pressed:
key_pressed[event.key] = False
# 游戏循环
while True:
# 处理输入事件
handle_input_events()
# 处理按键按下
if key_pressed[pygame.K_w]:
# 向上移动
pass
if key_pressed[pygame.K_a]:
# 向左移动
pass
if key_pressed[pygame.K_s]:
# 向下移动
pass
if key_pressed[pygame.K_d]:
# 向右移动
pass
# 渲染游戏界面
screen.fill((255,255,255))
pygame.display.update()
下一篇:按键将对象分组并返回新对象