设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 94|回复: 0

[转载发布] Hammy - MKXP-Z Input Device Tracker

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-7-12 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    9015

    主题

    864

    回帖

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    58751
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    68660

    灌水之王

    发表于 昨天 15:28 | 显示全部楼层 |阅读模式
    Hammy - MKXP-Z Input Device Tracker v1.01
    Per-frame keyboard and gamepad detection for mkxp-z with queryable device state




    Introduction

    This script provides an input device tracking system for RPG Maker VX Ace running on mkxp-z. It detects whether the player is using a keyboard or a gamepad and exposes that state as a queryable symbol: :none, :keyboard, or :gamepad.

    AI Disclaimer: Generative AI was used to refine the documentation and presentation of this script, as I am not a native English speaker. Additionally, AI was used for naming conventions in some places and for general beautification of the script.

    mkxp-z Disclaimer: This script is made exclusively for RPG Maker VX Ace running on mkxp-z (Ruby 3.1). It will not run on standard RPG Maker VX Ace without mkxp-z. See the mkxp-z section below for more information.



    Features

    Input Device Tracker Features

    • Queryable active device state as a symbol (:none, :keyboard, :gamepad)
    • Gamepad detection via SDL controller button polling (buttons 0-14)
    • Keyboard detection via mkxp-z native raw key state array
    • Gamepad input takes priority over simultaneous keyboard input
    • API availability checked once at startup and cached for the process lifetime



    mkxp-z

    mkxp-z is an open-source, cross-platform player for RPG Maker XP, VX, and VX Ace games. It is a heavily modified fork of mkxp originally built to run games based on Pokémon Essentials, which depends heavily on Windows APIs. It is best described as MKXP but supercharged - capable of running all but the most demanding RGSS projects with a bit of porting work.

    mkxp-z supports Windows, Linux (x86, ARM, and POWER), and both Intel and Apple Silicon versions of macOS. Because it ships with Ruby 3.1 rather than the original Ruby 1.9.2 bundled with RPG Maker VX Ace, scripts written for mkxp-z can take advantage of modern Ruby syntax and standard library features.

    This script requires mkxp-z and will not run on default RPG Maker VX Ace.



    Script Calls

    The following script calls are available for use in events and other scripts.

    Device State
    Hammy::InputDeviceTracker.device
    Returns the current device symbol: :none, :keyboard, or :gamepad.
    - Parameters: None
    - Returns: Symbol

    Example
                    Ruby:       
    1. Hammy::InputDeviceTracker.device
    复制代码


    Hammy::InputDeviceTracker.keyboard?
    Returns true when the active device is :keyboard.
    - Parameters: None
    - Returns: Boolean

    Example
                    Ruby:       
    1. Hammy::InputDeviceTracker.keyboard?
    复制代码


    Hammy::InputDeviceTracker.gamepad?
    Returns true when the active device is :gamepad.
    - Parameters: None
    - Returns: Boolean

    Example
                    Ruby:       
    1. Hammy::InputDeviceTracker.gamepad?
    复制代码


    Hammy::InputDeviceTracker.none?
    Returns true when no device has been detected yet (:none).
    - Parameters: None
    - Returns: Boolean

    Example
                    Ruby:       
    1. Hammy::InputDeviceTracker.none?
    复制代码


    Hammy::InputDeviceTracker.reset
    Resets the device state back to :none.
    - Parameters: None
    - Returns: Nil

    Example
                    Ruby:       
    1. Hammy::InputDeviceTracker.reset
    复制代码




    Usage

    This section explains how device detection works and how to query the active device state from other scripts or events.

    Detection Strategy
    The tracker polls for gamepad input first on every frame. If any SDL controller button is held, the device switches to :gamepad regardless of any simultaneous keyboard activity. Keyboard input is only registered when no gamepad button is active. The device state remains at its last detected value until a different device fires.


    • Gamepad input takes priority over keyboard input at all times.
    • The device state does not revert automatically when input stops.
    • Only digital buttons (0-14) are polled. Analog stick movement and trigger axis input do not register as gamepad activity.
    • Call Hammy::InputDeviceTracker.reset to return the state to :none manually.

    API Availability
    Both the controller API and the keyboard API are mkxp-z exclusive. Their availability is checked once at startup and memoized for the lifetime of the process. If either API is absent, the corresponding detection path is skipped silently and the tracker stays at :none.


    • This script requires mkxp-z and will not function on standard RGSS3.



    Installation


    • Copy the script to an open slot below ▼ Materials but above ▼ Main



    Compatibility

    This script is made strictly for RPG Maker VX Ace running on mkxp-z (Ruby 3.1). It will not run on default RPG Maker VX Ace without mkxp-z.



    License

    MIT License - Free for commercial and non-commercial use.



    Credits

    No credits are required.



    Why VX Ace?

    You might wonder why I'm still making scripts for VX Ace instead of MV/MZ. The answer is simple: Ruby is pure beauty, while JavaScript is a terrible language. Ruby's elegant syntax, intuitive design, and expressive power make scripting a joy. JavaScript, on the other hand, is a chaotic mess of inconsistencies and quirks that I simply despise.

    I work with RPG Maker VX Ace for my own game project, and I share the scripts I create with the community. If you're still using VX Ace, you're in good company!



    Download

    Script:Download from GitHub
    Demo:Download from GitHub





    本贴来自国际rpgmaker官方论坛作者:buddysievers处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/hammy-mkxp-z-input-device-tracker.183627/
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-8-4 17:32 , Processed in 0.063830 second(s), 54 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表