🎮 俄罗斯方块游戏
经典俄罗斯方块游戏实现,遵循FC/Game Boy标准规则。
🎯 游戏特性
核心规则
- 场地尺寸: 10列 × 20行标准网格
- 方块类型: 7种标准四连方块 (I, O, T, L, J, S, Z)
- 控制方式: 虚拟按钮 + 键盘控制
- 分辨率: 540×720竖屏 (优化显示效果)
游戏机制
- 方块生成: 纯随机生成7种方块
- 移动控制: 左右移动、旋转、软降
- 消行规则: 单行100分、双行300分、三行500分、四行800分
- 等级系统: 每消除10行升1级,速度逐渐加快
- 游戏结束: 新方块无法放置时结束
🎮 控制方式
虚拟按钮 (移动设备)
- ← 左移: 向左移动方块
- → 右移: 向右移动方块
- ↓ 软降: 加速下落 (每格+1分)
- ↻ 旋转: 顺时针旋转方块
键盘控制 (桌面设备)
- ← / →: 左右移动
- ↓: 软降加速
- ↑ / 空格: 旋转方块
- P: 暂停/继续游戏
触摸控制 (移动设备)
- 左右滑动: 水平移动
- 向下滑动: 软降加速
- 向上滑动: 旋转方块
📊 游戏界面
布局设计 (移动优化)
┌─────────────────────┐
│ 游戏画布 │
│ (540×720像素) │
├─────────────────────┤
│ 虚拟控制按钮 │
│ [开始] [↻旋转] [重来] │
│ [←][↓][→] │
├─────────────────────┤
│ 游戏信息面板 │
│ 分数 | 等级 | 消行 | 速度 │
└─────────────────────┘
控制按钮特点
- 第一行: 开始(左) | 旋转(中) | 重来(右)
- 第二行: 方向按钮紧凑排列 ← ↓ → (间距5px)
- 按钮大小: 65×65像素,适合手指操作
- 布局优化: 方向按钮紧密排列,操作更便捷
控制按钮布局
- 第一行: 开始按钮 (左) | 旋转按钮 (中) | 重来按钮 (右)
- 第二行: 方向控制按钮 (← ↓ →)
- 开始按钮: 动态状态 (开始/暂停/继续/重新开始)
- 重来按钮: 立即重置游戏,重新开始
信息面板 (虚拟键盘下方)
- 分数: 当前游戏得分 (大字体显示)
- 等级: 当前游戏等级 (0-20)
- 消行: 已消除的行数
- 速度: 当前下落速度倍数
信息面板 (虚拟键盘下方)
- 分数: 当前游戏得分 (大字体显示)
- 等级: 当前游戏等级 (0-20)
- 消行: 已消除的行数
- 速度: 当前下落速度倍数
设计特点:
- 信息面板位于虚拟键盘下方,方便查看
- 水平排列,节省垂直空间
- 大字体显示,易于阅读
- 视觉增强:阴影、边框、间距优化
游戏状态
- 游戏进行中: 正常游戏状态
- 游戏暂停: 点击画布或按P键暂停
- 游戏结束: 显示最终得分和统计
🔧 技术实现
技术栈
- 游戏引擎: PlayCanvas (WebGL 2.0/WebGPU)
- SDK集成: Poki SDK (游戏状态管理)
- 分辨率: 540×720竖屏优化
- 响应式: 自适应不同屏幕尺寸
代码结构
TetrisGame类
├── 游戏初始化 (initGame)
├── 方块管理 (spawnNewPiece, rotatePiece, movePiece)
├── 碰撞检测 (checkCollision)
├── 消行逻辑 (clearLines, updateScore)
├── 游戏循环 (startGameLoop)
├── 渲染系统 (render, drawBlock, drawRect, drawLine)
└── 控制管理 (setupControls, setupUI)
关键算法
- 碰撞检测: 实时检测边界和方块重叠
- 旋转算法: 4×4矩阵转置实现90度旋转
- 消行检测: 遍历每行检查是否填满
- 分数计算: 基础分 × 等级倍数
- 速度控制: 等级越高下落间隔越短
🚀 快速开始
访问方式
开发测试
# 进入游戏目录
cd /home/ubuntu/nanocode/happy-games/games/tetris/
# 查看游戏文件
ls -la
# 编辑游戏配置
vim index.html
📈 游戏策略
新手技巧
- 保持平整: 尽量填平底部,避免出现深坑
- 预留空间: 为I型方块留出4格空间完成Tetris
- 优先消行: 尽快消除行数提升等级
- 控制速度: 高等级时提前规划方块位置
高级技巧
- T-Spin准备: 虽然经典版无T-Spin,但可预留T型位置
- 连消规划: 一次性消除多行获得更高分数
- 速度适应: 随着等级提升调整操作节奏
🔄 更新日志
v1.2.0 (2026-04-03)
- ✅ 移动开始/重来按钮到底部控制行
- ✅ 布局优化:开始(左) | 旋转(中) | 重来(右)
- ✅ 方向按钮紧凑排列 (←↓→ 间距5px)
- ✅ 保持动态开始按钮状态 (开始/暂停/继续/重新开始)
- ✅ 保持快速游戏重置功能
v1.1.0 (2026-04-03)
- ✅ 优化移动端布局:信息面板移到虚拟键盘下方
- ✅ 改进信息面板设计:水平排列 + 大字体显示
- ✅ 增强视觉体验:阴影、边框、间距优化
v1.0.0 (2026-04-03)
- ✅ 实现经典俄罗斯方块核心规则
- ✅ 添加虚拟控制按钮系统
- ✅ 集成PlayCanvas游戏引擎
- ✅ 添加Poki SDK支持
- ✅ 实现分数和等级系统
- ✅ 优化540×720竖屏显示
- ✅ 添加游戏暂停/继续功能
- ✅ 集成到小游戏中心门户
📝 规则参考
详细规则请参考: 经典俄罗斯方块(标准复古版)规则.md
🎨 设计说明
视觉设计
- 色彩方案: 每种方块有独特颜色,易于区分
- 网格显示: 清晰显示10×20游戏场地
- 预览系统: 显示方块最终下落位置
- 高光阴影: 方块立体效果增强视觉体验
用户体验
- 响应控制: 虚拟按钮即时反馈
- 状态提示: 清晰显示游戏状态
- 信息展示: 实时更新分数和等级
- 错误处理: 无效操作无响应,避免误操作