台球游戏虚拟W按键(适配http://www.heyzxz.me/pcol/)

为http://www.heyzxz.me/pcol/添加虚拟W按键,解决iOS平板无键盘操作问题,点击按钮模拟W键按下

当前为 2025-06-23 提交的版本,查看 最新版本

// ==UserScript==
// @name         台球游戏虚拟W按键(适配http://www.heyzxz.me/pcol/)
// @namespace    https://gf.qytechs.cn/users/your-id
// @version      1.1
// @description  为http://www.heyzxz.me/pcol/添加虚拟W按键,解决iOS平板无键盘操作问题,点击按钮模拟W键按下
// @author       你的名字
// @match        http://www.heyzxz.me/pcol/*
// @grant        none
// @run-at       document-end
// ==/UserScript==

(function() {
    'use strict';

    // 创建虚拟W按键并优化样式
    function createVirtualWKey() {
        const btn = document.createElement('button');
        btn.id = 'pcol-virtual-w-btn';
        btn.textContent = 'W';  // 简化按钮文本为单个字母,适配游戏界面
        btn.style.cssText = `
            position: fixed;
            top: 30px;
            left: 50%;
            transform: translateX(-50%);
            width: 60px;
            height: 60px;
            font-size: 28px;
            background-color: rgba(255, 165, 0, 0.9);  /* 橙色按钮更醒目 */
            color: white;
            border: 2px solid white;
            border-radius: 50%;  /* 圆形按钮 */
            cursor: pointer;
            z-index: 9999;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
        `;

        // 模拟按键事件(兼容keydown/keyup)
        function triggerKeyEvent(type) {
            const event = new KeyboardEvent(type, {
                key: 'w',
                code: 'KeyW',
                keyCode: 87,  // 兼容旧版事件
                bubbles: true,
                cancelable: true
            });
            // 优先向游戏主容器派发事件(假设游戏监听canvas元素)
            const gameCanvas = document.querySelector('canvas');
            if (gameCanvas) {
                gameCanvas.dispatchEvent(event);
            } else {
                //  fallback到document
                document.dispatchEvent(event);
            }
        }

        // 绑定触摸和鼠标事件
        btn.addEventListener('touchstart', (e) => {
            e.preventDefault();
            triggerKeyEvent('keydown');
        });
        btn.addEventListener('touchend', (e) => {
            e.preventDefault();
            triggerKeyEvent('keyup');
        });
        btn.addEventListener('mousedown', (e) => {
            e.preventDefault();
            triggerKeyEvent('keydown');
        });
        btn.addEventListener('mouseup', (e) => {
            e.preventDefault();
            triggerKeyEvent('keyup');
        });

        // 添加到页面
        document.body.appendChild(btn);
    }

    // 页面加载后初始化(延迟500ms确保游戏元素加载完成)
    setTimeout(() => {
        createVirtualWKey();
        console.log('【台球虚拟按键】W键已添加,适配iOS平板触屏操作');
    }, 500);
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址