17 个仓库
Libraries for managing gamepads, joysticks, and input mapping.
Explore 17 awesome GitHub repositories matching part of an awesome list · Input And Controllers. Refine with filters or upvote what's useful.
Ebiten is a cross-platform 2D game engine and framework for the Go programming language. It provides a hardware-accelerated 2D renderer and a multi-input handling library to develop two-dimensional games with a single codebase. The engine is designed for broad deployment, allowing applications to be compiled and run across desktops, mobile devices, web browsers, and gaming consoles. It distinguishes itself by integrating custom shader programming for specialized visual effects and providing haptic feedback control for mobile devices and gamepads. The framework covers core game development ca
Enables precise control of high and low frequency rumble motors on connected gamepads.
This is a browser-based Tetris game built with React, using Redux and Immutable.js to manage all game state in a single immutable store. The application renders the game board, next-block preview, and score display as React components, with state transitions that are predictable and support time-travel debugging through the Redux DevTools Extension. The game distinguishes itself through several integrated capabilities. It automatically adapts between keyboard and touch controls based on the user's input device, with configurable repeat rates for responsive gameplay. A persistence layer serial
Automatically switches between keyboard and touch controls based on the user's input device.
This repository is a comprehensive collection of functional 2D and 3D demo projects and implementation samples for the Godot Game Engine. It serves as an interactive tutorial and reference library, providing a working codebase to demonstrate how to apply engine features in real-world scenarios. The collection focuses on practical implementation guides, covering a wide array of technical capabilities from basic engine fundamentals to advanced rendering and scripting techniques. It allows users to study the application of node-based composition, asset pipelines, and game logic through direct ex
Activates gamepad vibration and mobile haptics to provide tactile feedback to the player.
Veloren is an open-source multiplayer RPG featuring a voxel-based action adventure in a procedurally generated fantasy world. It is built upon a voxel game engine that supports 3D rendering via Vulkan and Metal, utilizing a procedural world generator to create geography and ecosystems based on erosion algorithms and temperature maps. The project is distinguished by a sandboxed plugin system using WebAssembly, which allows for the addition of new game logic and equipment without recompiling the core engine. It also features a dedicated game server architecture designed to synchronize state, ma
Provides native support for gamepads and controllers to allow interaction without a keyboard.
360Controller is a macOS system extension and driver that enables wired Xbox 360, Xbox One, and original Xbox controllers to function as standard gamepad inputs. It maps hardware identifiers to system inputs to provide compatibility for these specific game controllers on macOS. The driver includes support for haptic force feedback and the management of integrated LED indicators on compatible hardware. It also provides a mechanism for third-party gamepad integration, allowing users to manually register unsupported controllers by specifying vendor and product identifiers. The project encompass
Manages force feedback vibrations and LED indicators to enhance the immersive gaming experience.
OpenVR is a software development kit and runtime that provides a unified API for accessing virtual reality hardware from multiple manufacturers. It abstracts vendor-specific headsets, controllers, and tracking systems into a common interface, enabling applications to work across different VR devices without requiring hardware-specific code. The SDK handles core VR operations including stereoscopic frame submission to a compositor, headset and controller tracking, and input binding that maps abstract application actions to physical device controls. The runtime is built around a modular driver
Exposes VR controller inputs like buttons and triggers through a dedicated driver input API.
Maps physical controllers, keyboards, and on-screen buttons for quick save and load actions in emulated games.
BetterJoy 是一个软件层和驱动程序,用于通过蓝牙或 USB 将 Nintendo Switch Pro 控制器和 Joy-Cons 连接到 Windows 环境。它作为一个 XInput 控制器模拟器和游戏手柄输入映射器,将 Nintendo Switch 控制器输入转换为 XInput 信号,以供 PC 游戏和模拟器使用。 该项目包含一个陀螺仪鼠标模拟器,将 Nintendo Switch 控制器的内置陀螺仪映射到系统鼠标光标移动。它还提供了一个配置界面,用于将控制器按钮重新映射到自定义键盘按键。 该软件涵盖了无线和有线控制器的硬件连接、游戏软件的输入转换,以及将陀螺仪数据转换为相对屏幕坐标的功能。
Provides a mapping interface to bind physical controller buttons to emulator actions and keyboard keys.
UnleashedRecomp is a legacy software modernization project that uses static binary recompilation to enable native execution on Windows and Linux. Its primary purpose is to remove the need for emulation while updating old applications to support modern hardware and high-resolution displays. The project implements a game modding infrastructure that allows for the loading of external assets and custom software tweaks using standardized modification formats. It also includes an achievement tracking system that mirrors original platform notifications and a dedicated menu for monitoring progress.
Expands controller support to include D-pad mapping, dynamic LED colors, and touchpad integration.
AmplitudeJS 是一个用于构建自定义 HTML5 音频播放器的 JavaScript 库和框架。它作为一个客户端播放列表管理器和媒体控制器,弥合了 HTML 元素与 Web Audio API 之间的差距,允许开发人员创建品牌化的媒体界面,而无需依赖默认的浏览器样式。 该项目的特色在于使用基于 CSS 类的 DOM 绑定和数据属性状态映射,将 HTML 元素直接链接到播放控制和轨道元数据。它包含一个专用可视化系统,使用 Web Audio API 根据音频频率数据渲染实时 SVG 波形和特定歌曲的视觉效果。 该库提供了全面的媒体库管理功能,包括播放列表排序、随机和重复逻辑以及元数据填充。它处理音量管理、播放速度调整和时间戳跳转等播放控制,同时提供事件驱动的回调系统,以将用户界面更改与特定的播放里程碑同步。 该框架进一步支持用于键盘快捷键的外部输入映射,并包括设备感知事件切换,以优化移动触摸屏的交互。
Detects user agents to switch between click and touch event listeners for mobile compatibility.
LittleJS 是一个轻量级的 HTML5 2D 游戏引擎,专为使用 Canvas 和 WebGL 构建 Web 游戏而设计,无需外部依赖。它集成了 WebGL 精灵渲染器、用于街机风格碰撞和刚体动力学的 2D 物理引擎,以及用于实体导航的基于网格的 A* 寻路系统。 该引擎的独特之处在于其程序化音频合成器,它使用参数数组在运行时生成音乐和音效,从而最大限度地减小文件大小。它还具有全面的图形流水线,支持自定义片元着色器后处理和动态 2D 光照系统。 该框架涵盖了广泛的开发功能,包括粒子效果生成、基于帧的精灵动画以及带有离屏 Canvas 缓存的瓦片地图渲染。它为键盘、鼠标和游戏手柄信号提供了统一的输入管理,以及通过本地存储进行游戏状态持久化和成就跟踪的实用程序。 该项目包括用于从 JSON 格式文件加载关卡数据的工具,并提供用于监控内部引擎状态的可视化调试覆盖层。
Supports gamepad vibration to provide tactile alerts and physical responses to in-game events.
flutter-folio 是一个参考应用程序和作品集,展示了如何实现单一代码库,从而在移动、桌面和 Web 平台上提供原生用户体验。它作为跨平台 UI 框架和设计模式的展示,目标平台包括 iOS、Android、macOS、Windows、Linux 和 Web 浏览器。 该项目专注于自适应 UI 设计,提供了如何根据屏幕尺寸和输入设备自动调整布局和交互模式的示例。它展示了如何将共享的应用程序逻辑映射到特定平台的习惯用法,以满足不同操作系统的期望。 该实现涵盖了通过响应式断点逻辑和输入感知布局进行的跨平台 UX 优化。它展示了如何使用统一的渲染引擎在不同的硬件环境中保持一致的用户体验。
Implements automatic interface switching based on the detected input device type.
Karabiner is a system-level keyboard remapper and input modifier for macOS. It functions as a kernel-level interceptor that modifies raw hardware events before they reach the operating system, utilizing a virtual hardware device to inject synthesized keyboard and mouse actions. The project distinguishes itself as a context-aware input manager, applying modification rules dynamically based on the active application, connected hardware, or current input source. It serves as a keyboard macro engine capable of automating multi-key shortcuts and conditional behaviors. Its broader capabilities inc
Applies input modifications conditionally based on the active application, connected device, or input source.
DirectXTK is a C++ library designed to simplify 2D and 3D graphics, audio, and input programming for DirectX applications. It serves as a comprehensive toolkit providing high-level wrappers for DirectX graphics, audio management, and input handling. The toolkit includes a graphics wrapper for loading textures and rendering 3D models and 2D sprites, alongside a dedicated audio manager for sound effects and 3D spatial audio. It also provides an input handler to track and process state updates from keyboards, mice, and gamepads. The library covers a broad capability surface including 3D math an
Provides libraries for managing and processing signals from gamepads, keyboards, and mice to drive application logic.
RetroWar: 8-bit Party Battle is out now. Defeat up to 15 of your friends in a tournament of 80s-inspired retro mini games.
Gamepad implementation with SDL support and rumble.
Use game controllers with ease in your libGDX games.
Adds support for gamepads and joysticks.
Utilities for using controllers with libGDX.
Adds Scene2D button support and configurable mappings.