给小站加了个 2048

游戏厅上线

博客新增了一个小游戏——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 保证游戏网格大小适中。

上一篇 从零开始搭建这个博客

评论

暂无评论,来抢沙发吧!
data-auto-pause="false">