游戏厅上线
博客新增了一个小游戏——2048,经典的数字合并游戏。
玩法
使用方向键或滑动屏幕移动方块,相同数字相撞会合并,目标是合成 2048!
- 方向键 / 触摸滑动控制
- 到达 2048 后可选择继续挑战
- 最高分自动保存
技术实现
方块移动动画
每个方块是一个绝对定位的 DOM 元素,通过 CSS transition 实现平滑移动:
.g2048-tile {
transition: top 0.12s ease, left 0.12s ease;
}
游戏逻辑计算出每个方块的最终位置后直接设置 style.top 和 style.left,浏览器自动补间动画,性能消耗极低。
触摸滑动
通过 touchstart / touchend 事件监听滑动方向,设置 30px 阈值防止误触,并在游戏网格上阻止页面滚动。
方块消失与合并
合并时旧方块缩小的同时新方块弹出放大,视觉效果连贯:
- tile-new:从 0 到 1 缩放出现
- tile-merged:合并时 1 -> 1.15 -> 1 脉冲
- tile-removed:缩小淡出消失
页面布局
游戏页面采用全宽布局,适配手机和电脑,最大宽度 560px 保证游戏网格大小适中。
评论