Pygame游戏手柄(Xbox)输入测试工具


前言

在python做机器人控制时,需要加入xbox操控功能,为了直观显示手柄摇杆与变量之间的对应关系,实时调试手柄输入,开发了python手柄测试程序(本文基于xbox)。

Xbox 手柄测试程序说明

测试程序使用 pygame 库创建了一个简单的用户界面,用于实时显示 Xbox 手柄各个轴的值。程序的主要功能包括:

  1. 手柄检测:在启动时,程序会检查是否连接了 Xbox 手柄。如果未检测到手柄,程序将提示用户并退出。

  2. 实时显示:程序创建了一个窗口,窗口大小为 600x400 像素。在窗口中,程序会不断更新并显示手柄每个轴的当前值,确保可以清晰地看到摇杆的变化。

  3. 轴值更新:每个轴的值会实时更新,并显示在屏幕上,值的格式为小数点后两位。

  4. 退出功能:可以通过点击窗口的关闭按钮(X)来退出程序。

使用说明

  1. 运行程序后,确保 Xbox 手柄已连接。
  2. 在程序窗口中,移动手柄的摇杆,观察各轴值的变化。
  3. 若需退出程序,点击窗口右上角的关闭按钮。

完整代码

import pygame
import sys

# 初始化 pygame
pygame.init()

# 设置手柄
if pygame.joystick.get_count() > 0:
    joystick = pygame.joystick.Joystick(0)
    joystick.init()
    print(f"检测到手柄: {joystick.get_name()}")
else:
    print("未检测到手柄")
    pygame.quit()
    sys.exit()

# 设置窗口
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("Xbox 手柄测试")

# 字体设置
font = pygame.font.Font(None, 36)

# 主循环
running = True
while running:
    screen.fill((30, 30, 30))  # 设置背景颜色

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 获取轴的数量
    num_axes = joystick.get_numaxes()
    
    # 打印手柄所有轴的值,并显示在屏幕上
    for i in range(num_axes):
        axis_value = joystick.get_axis(i)
        axis_text = font.render(f"轴 {i}: {axis_value:.2f}", True, (255, 255, 255))
        screen.blit(axis_text, (50, 50 + i * 40))  # 显示在屏幕上的位置

    # 刷新屏幕
    pygame.display.flip()

    # 设置延迟,防止刷新过快
    pygame.time.wait(100)

pygame.quit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值