非公開 画面高画質化

    @@ -5,37 +5,41 @@ */ javascript:(function(){ - const canvas = document.getElementById('gameCanvas'); - if(!canvas) return; - const ctx = canvas.getContext('2d'); - - /* 1. 解像度の倍率設定(2倍で十分クッキリします。3以上は超重負荷) */ - const dpr = 2; - - /* 2. 内部解像度を物理的に倍にする */ - /* 元のサイズを記録 */ - const rect = canvas.getBoundingClientRect(); - const oldW = canvas.width; - const oldH = canvas.height; - - /* キャンバスのドット数を増やす */ - canvas.width = oldW * dpr; - canvas.height = oldH * dpr; - - /* 3. 描画スケールを補正 */ - /* これをしないと、すべてのオブジェクトが画面の左上に小さく固まってしまいます */ - ctx.scale(dpr, dpr); - - /* 4. フォントの平滑化設定(さらにクッキリさせる) */ - ctx.imageSmoothingEnabled = false; - ctx.textBaseline = 'middle'; - - /* 5. ゲーム側の自動リサイズイベントを上書きして維持する */ - window.removeEventListener('resize', window.resize); - - /* 座標計算のズレを防ぐため、ゲーム内のグローバル変数も更新(あれば) */ - if(typeof width !== 'undefined') window.width = canvas.width / dpr; - if(typeof height !== 'undefined') window.height = canvas.height / dpr; + const d=document; + /* 1. 拡大率の定義(PCなら2.0〜3.0が適正) */ + const zoom = 2.5; + + /* 2. UI要素を一括で「本物のサイズ」へ書き換える */ + const rescale = (selector, baseWidth, baseHeight, baseFont) => { + const el = d.querySelector(selector); + if(!el) return; + Object.assign(el.style, { + width: (baseWidth * zoom) + 'px', + height: (baseHeight * zoom) + 'px', + fontSize: (baseFont * zoom) + 'px', + transform: 'rotate(-90deg)', /* 回転は維持 */ + scale: '1', /* ここでscaleを1(拡大なし)にするのがクッキリの秘訣 */ + borderWidth: (2 * zoom) + 'px' + }); + }; + + /* 各パーツの物理サイズを底上げ(元サイズ × zoom) */ + rescale('#minimap', 60, 60, 10); + rescale('.score-panel', 100, 40, 12); + rescale('#leaderboard', 120, 150, 11); + rescale('#mode-display', 200, 30, 14); + + /* 3. ボタンや入力欄もクッキリさせる */ + d.querySelectorAll('button, input, .modal-content').forEach(el => { + el.style.fontSize = (16 * zoom) + 'px'; + el.style.padding = (8 * zoom) + 'px'; + }); + + /* 4. Canvasのにじみ対策(レンダリングヒント) */ + const canvas = d.getElementById('gameCanvas'); + if(canvas) { + canvas.style.imageRendering = 'pixelated'; /* 補完によるボヤけを防止 */ + } - alert('【高解像度化パッチ】適用完了!\n内部解像度を' + dpr + '倍に引き上げました。\n文字のぼやけが解消されているはずです。'); + alert('【UI高精細化】適用!\n虫眼鏡拡大を廃止し、フォントそのものを巨大化しました。'); })();
  • /*
     * @title 画面高画質化
     * @description ゲーム画面を高画質にし、PCなど大画面で遊んだ際のぼやけを小さくする
     * @private
     */
    
    javascript:(function(){
        const d=document;
        /* 1. 拡大率の定義(PCなら2.0〜3.0が適正) */
        const zoom = 2.5;
    
        /* 2. UI要素を一括で「本物のサイズ」へ書き換える */
        const rescale = (selector, baseWidth, baseHeight, baseFont) => {
            const el = d.querySelector(selector);
            if(!el) return;
            Object.assign(el.style, {
                width: (baseWidth * zoom) + 'px',
                height: (baseHeight * zoom) + 'px',
                fontSize: (baseFont * zoom) + 'px',
                transform: 'rotate(-90deg)', /* 回転は維持 */
                scale: '1', /* ここでscaleを1(拡大なし)にするのがクッキリの秘訣 */
                borderWidth: (2 * zoom) + 'px'
            });
        };
    
        /* 各パーツの物理サイズを底上げ(元サイズ × zoom) */
        rescale('#minimap', 60, 60, 10);
        rescale('.score-panel', 100, 40, 12);
        rescale('#leaderboard', 120, 150, 11);
        rescale('#mode-display', 200, 30, 14);
    
        /* 3. ボタンや入力欄もクッキリさせる */
        d.querySelectorAll('button, input, .modal-content').forEach(el => {
            el.style.fontSize = (16 * zoom) + 'px';
            el.style.padding = (8 * zoom) + 'px';
        });
    
        /* 4. Canvasのにじみ対策(レンダリングヒント) */
        const canvas = d.getElementById('gameCanvas');
        if(canvas) {
            canvas.style.imageRendering = 'pixelated'; /* 補完によるボヤけを防止 */
        }
    
        alert('【UI高精細化】適用!\n虫眼鏡拡大を廃止し、フォントそのものを巨大化しました。');
    })();
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。