<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>小游戏 - 标签 - lihuu — 系统工程、AI 工具链与 Rust 开发博客</title>
        <link>https://silentstormic.top/tags/%E5%B0%8F%E6%B8%B8%E6%88%8F/</link>
        <description>小游戏 - 标签 - lihuu — 系统工程、AI 工具链与 Rust 开发博客</description>
        <generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Sun, 13 Sep 2026 00:00:00 &#43;0800</lastBuildDate><atom:link href="https://silentstormic.top/tags/%E5%B0%8F%E6%B8%B8%E6%88%8F/" rel="self" type="application/rss+xml" /><item>
    <title>涂鸦俄罗斯方块</title>
    <link>https://silentstormic.top/research/doodle-tetris/</link>
    <pubDate>Sun, 13 Sep 2026 00:00:00 &#43;0800</pubDate>
    <author>lihuu</author>
    <guid>https://silentstormic.top/research/doodle-tetris/</guid>
    <description><![CDATA[<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>涂鸦俄罗斯方块 · Doodle Tetris</title>
<style>
  html, body { margin: 0; height: 100%; overflow: hidden; background: #faf3e4; }
  #scene { display: block; width: 100%; height: 100%; touch-action: none; cursor: grab; }
  #scene:active { cursor: grabbing; }
  .hud {
    position: fixed;
    font-family: 'Comic Sans MS', 'Chalkboard SE', 'Marker Felt', 'Segoe Print', 'PingFang SC', sans-serif;
    color: #4a443c;
    pointer-events: none;
    user-select: none;
    z-index: 10;
  }
  #title { top: 18px; left: 24px; font-size: 26px; font-weight: bold; transform: rotate(-2deg); letter-spacing: 2px; }
  #title small { display: block; font-size: 12px; font-weight: normal; opacity: .6; letter-spacing: 4px; margin-top: 4px; }
  #hint { bottom: 16px; left: 24px; font-size: 13px; opacity: .6; line-height: 1.7; }
  #keys {
    bottom: 16px; left: 24px; font-size: 13px; line-height: 2.1;
    transform: rotate(-1deg); opacity: .85;
  }
  #keys b { display: block; letter-spacing: 4px; font-size: 15px; margin-bottom: 3px; }
  #keys .k {
    display: inline-block; border: 1.5px solid #6b6357; border-radius: 5px;
    padding: 0 6px; margin: 0 2px; font-size: 11px; line-height: 1.7;
    background: rgba(255, 253, 244, .75); box-shadow: 1.5px 1.5px 0 rgba(58, 53, 46, .22);
  }
  #keys .k:nth-of-type(odd) { transform: rotate(-1.5deg); }
  #keys .k:nth-of-type(even) { transform: rotate(1.2deg); }
  #panel {
    top: 20px; right: 26px; font-size: 16px; line-height: 1.9;
    transform: rotate(2deg); text-align: right;
  }
  #panel b { font-size: 22px; margin-left: 8px; }
  #panel .lvl { color: #e8734a; }
  #overlay {
    top: 0; left: 0; right: 0; bottom: 0;
    display: none; flex-direction: column; align-items: center; justify-content: center;
    background: rgba(250, 243, 228, .55);
  }
  #ovTitle { font-size: 52px; font-weight: bold; transform: rotate(-3deg); letter-spacing: 6px; color: #3a352e; }
  #ovSub { margin-top: 18px; font-size: 16px; opacity: .7; transform: rotate(1deg); }
</style>
</head>
<body>
<canvas id="scene"></canvas>
<div class="hud" id="title">涂鸦俄罗斯方块<small>DOODLE TETRIS · THREE.JS</small></div>
<div class="hud" id="panel">
  分数<b id="score">0</b><br>
  行数<b id="lines">0</b><br>
  等级<b id="level" class="lvl">1</b>
</div>
<div class="hud" id="keys">
  <b>键位</b>
  <div><span class="k">A</span><span class="k">D</span> 左右 · <span class="k">W</span><span class="k">空格</span> 旋转 · <span class="k">S</span><span class="k">↓</span> 秒落 · <span class="k">P</span> 暂停 · <span class="k">R</span> 重来</div>
  <div>鼠标 移动瞄准列 · <span class="k">左键</span> 旋转 · <span class="k">右键</span> 秒落</div>
  <div>视角固定正面 · 滚轮缩放 · 双击复位</div>
</div>
<div class="hud" id="overlay"><div id="ovTitle"></div><div id="ovSub"></div></div>
<script type="module" src="./tetris.js?v=7"></script>
</body>
</html>]]></description>
</item>
</channel>
</rss>
