您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
title
当前为
// ==UserScript== // @name Moving touch buttons in tetr.js // @namespace http://tampermonkey.net/ // @version 0.3 // @author Oki // @description title // @match http://farter.cn/tetr.js/ // @grant none // ==/UserScript== (function() { 'use strict'; window.addEventListener('load', function(){ touchButtonsLayout = function() { var dpiX = 96; var dpiY = 96; var winW = window.innerWidth / dpiX; var winH = window.innerHeight / dpiY; var buttonH = 0.7, buttonW = 1, fontSize=0.55, margin=0.1, unit="in"; var setPos = function(elem, posX, posY, sizeW, sizeH, alignX, alignY, offsetX, offsetY, clientW, clientH) { elem.style.width = "" + sizeW + unit; elem.style.height = "" + sizeH + unit; // border ignored, for now elem.style.left = "" + (offsetX + alignX * 0.5 * (clientW - sizeW) + posX * sizeW - ( (alignX-1) * margin/2 )) + unit; elem.style.top = "" + (offsetY + alignY * 0.5 * (clientH - sizeH) + posY * sizeH - ( (alignY-1) * margin/2 )) + unit; elem.style.display = "block"; elem.style.fontSize = "" + fontSize + unit; } var layouts = { //function array "NONE": function() { for (var i = 0, len = touchButtons.length; i < len; i++) touchButtons[i].style.display = "none"; }, "KBD_R": function() { setPos(touchRotLeft, 0, -1, buttonW, buttonH, 0, 2, 0, 0, winW, winH); setPos(touchRot180, 0.5, -2, buttonW, buttonH, 0, 2, 0, 0, winW, winH); setPos(touchRotRight, 1, -1, buttonW, buttonH, 0, 2, 0, 0, winW, winH); setPos(touchHold, 1.5, 0, buttonW, buttonH, 0, 2, 0, 0, winW, winH); setPos(touchLeft, 0, 0, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchRight, -2, 0, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchDown, -1, 0, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchDrop, -1, -1, buttonW, buttonH, 2, 2, 0, 0, winW, winH); }, "KBD_L": function() { setPos(touchRotLeft, -1, -1, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchRot180, -0.4, -2, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchRotRight, 0, -1, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchHold, -1.5, 0, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchRight, 2, 0, buttonW, buttonH, 0, 2, 0, 0, winW, winH); setPos(touchLeft, 0, 0, buttonW, buttonH, 0, 2, 0, 0, winW, winH); setPos(touchDown, 1, 0, buttonW, buttonH, 0, 2, 0, 0, winW, winH); setPos(touchDrop, 1, -1, buttonW, buttonH, 0, 2, 0, 0, winW, winH); }, "JOY": function() { var oy/*offset Y by block*/,ay/*align Y*/; if (winH-winW>buttonH*1.5) { oy=-1; ay=2; } else { oy=0; ay=1; } /* single finger */ buttonW = 0.8; if ((winW-0.1)/4<buttonW) { buttonW=(winW-0.1)/4; } setPos(touchRotLeft, -0.5, 1+oy, buttonW, buttonH, 2, ay, 0, 0, winW, winH); setPos(touchRot180, -0.5, -1+oy, buttonW, buttonH, 2, ay, 0, 0, winW, winH); setPos(touchRotRight, 0, 0+oy, buttonW, buttonH, 2, ay, 0, 0, winW, winH); setPos(touchHold, -1, 0+oy, buttonW, buttonH, 2, ay, 0, 0, winW, winH); setPos(touchRight, 1, 0+oy, buttonW, buttonH, 0, ay, 0, 0, winW, winH); setPos(touchLeft, 0, 0+oy, buttonW, buttonH, 0, ay, 0, 0, winW, winH); setPos(touchDown, 0.5, 1+oy, buttonW, buttonH, 0, ay, 0, 0, winW, winH); setPos(touchDrop, 0.5, -1+oy, buttonW, buttonH, 0, ay, 0, 0, winW, winH); }, "NARROW": function() { setPos(touchLeft, -2, 0, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchRight, 0, 0, buttonW, buttonH, 2, 2, 0, 0, winW, winH); if (winH-winW>buttonH*1.5) { setPos(touchDown, -1, 0, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchDrop, -1, -1, buttonW, buttonH, 2, 2, 0, 0, winW, winH); } else { setPos(touchDown, 0, -1, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchDrop, -1, 0, buttonW, buttonH, 2, 2, 0, 0, winW, winH); } setPos(touchRotLeft, 0, -1.2, buttonW, buttonH, 0, 1, 0, 0, winW, winH); setPos(touchRotRight, 0, 0, buttonW, buttonH, 0, 1, 0, 0, winW, winH); setPos(touchHold, 0, 1.2, buttonW, buttonH, 0, 1, 0, 0, winW, winH); setPos(touchRot180, 0, -2.4, buttonW, buttonH, 0, 1, 0, 0, winW, winH); }, "NARROW_L": function() { setPos(touchRotLeft, -2, 0, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchRotRight, -1, 0, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchDrop, 0, 0, buttonW, buttonH, 2, 2, 0, 0, winW, winH); if (winH-winW>buttonH*1.5) { setPos(touchRot180, -1, -1, buttonW, buttonH, 2, 2, 0, 0, winW, winH); } else { setPos(touchRot180, 0, -1, buttonW, buttonH, 2, 2, 0, 0, winW, winH); } setPos(touchLeft, 0, -1.2, buttonW, buttonH, 0, 1, 0, 0, winW, winH); setPos(touchDown, 0, 0, buttonW, buttonH, 0, 1, 0, 0, winW, winH); setPos(touchRight, 0, 1.2, buttonW, buttonH, 0, 1, 0, 0, winW, winH); setPos(touchHold, 0, -2.4, buttonW, buttonH, 0, 1, 0, 0, winW, winH); }, "NARROW_LM": function() { setPos(touchLeft, 0, 0, buttonW, buttonH, 0, 2, 0, 0, winW, winH); setPos(touchRight, 2, 0, buttonW, buttonH, 0, 2, 0, 0, winW, winH); if (winH-winW>buttonH*1.5) { setPos(touchDown, 1, 0, buttonW, buttonH, 0, 2, 0, 0, winW, winH); setPos(touchDrop, 1, -1, buttonW, buttonH, 0, 2, 0, 0, winW, winH); } else { setPos(touchDown, 0, -1, buttonW, buttonH, 0, 2, 0, 0, winW, winH); setPos(touchDrop, 1, 0, buttonW, buttonH, 0, 2, 0, 0, winW, winH); } setPos(touchRotLeft, 0, -1.2, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchRotRight, 0, -2.4, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchHold, 0, 0, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchRot180, 0, -3.6, buttonW, buttonH, 2, 2, 0, 0, winW, winH); }, "DELUXE": function() { buttonW = 0.8; if ((winW-0.1)/4<buttonW) { buttonW=(winW-0.1)/4; } setPos(touchLeft, 0, 0, buttonW, buttonH, 0, 2, 0, 0, winW, winH); setPos(touchRight, 1, 0, buttonW, buttonH, 0, 2, 0, 0, winW, winH); setPos(touchDown, 0, 0, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchDrop, 0, -1, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchRotLeft, -1, 0, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchRotRight, -1, -1, buttonW, buttonH, 2, 2, 0, 0, winW, winH); setPos(touchHold, 0.5, -1, buttonW, buttonH, 0, 2, 0, 0, winW, winH); //setPos(touchRot180, 0, -buttonH*2.4, buttonW, buttonH, 0, 1, 0, 0, winW, winH); touchRot180.style.display = "none"; }, }; setPos(touchLayout, 0, 0, buttonW*0.8, buttonH*0.8, 2, 0, 0, 0, winW, winH); if(currLayout === -2) { // none layouts["NONE"](); }else if(currLayout === -1) { // auto detection if(winW<buttonW*3) { layouts["NONE"](); } else if((winW-(winH*0.5)>buttonW*4.5) || (winH-winW>4*buttonH && winW>buttonW*5.5)) { layouts["KBD_R"](); } else if(winW-(winH*0.5)>buttonW*3) { layouts["JOY"](); } else if(winH-winW>0) { layouts["NARROW"](); } else if(winW>=buttonW*4) { layouts["DELUXE"](); } else { layouts["NONE"](); } } else { layouts[["KBD_R","KBD_L","JOY","NARROW","NARROW_L","NARROW_LM","DELUXE"][currLayout]](); } } }); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址