效果图

定义固定宽高的画布,设置唯一id方便后续 JS 操控;
引入拆分好的功能模块 JS(网格、泡泡、发射器、游戏管理),让代码逻辑更清晰,避免单文件冗余;
预留交互入口,为鼠标和触屏操作做好准备,确保多设备适配。
基础样式:设置画布灰色背景、居中显示,避免页面元素干扰游戏画面;
交互优化:禁用文本选中、触摸高亮,防止操作时出现弹窗或多余高亮,提升操作手感;
触屏适配:通过touch-action: none屏蔽默认触屏行为,确保手机上操作不卡顿、不偏移。
交互控制:监听鼠标 / 触屏的移动、点击事件,实时计算操作位置,确定泡泡发射方向;
元素管理:创建泡泡发射器(随机生成泡泡颜色、控制发射力度)、网格系统(存储场上泡泡位置),用 “对象池” 高效管理泡泡的添加、删除;
规则逻辑:游戏管理器判断泡泡碰撞、检测同色连线并消除,触发得分、关卡升级,还能实现游戏重置,让玩法闭环且有挑战性。
<html><head><meta charset="UTF-8" /><title>经典泡泡消消乐</title><style>#game-canvas {touch-action: none;display: block;margin: 0 auto;background: #eee;-webkit-touch-callout: none;-webkit-user-select: none;-khtml-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;outline: none;-webkit-tap-highlight-color: rgba(255, 255, 255, 0); /* mobile webkit */}</style></head><body><div><canvasstyle="maring: 0 auto; background: #eee"width="480"height="320"></canvas></div><scripttype="application/javascript"src=" https://ai-wallpaper-1302080640.cos.ap-nanjing.myqcloud.com/grid.js"></script><scripttype="application/javascript"src=" https://ai-wallpaper-1302080640.cos.ap-nanjing.myqcloud.com/ball.js"></script><scripttype="application/javascript"src=" https://ai-wallpaper-1302080640.cos.ap-nanjing.myqcloud.com/shooter.js"></script><scripttype="application/javascript"src=" https://ai-wallpaper-1302080640.cos.ap-nanjing.myqcloud.com/manager.js"></script><script>//Game canvas and contextvar canvas = document.getElementById("game-canvas");var ctx = canvas.getContext("2d");var rectangle = canvas.getBoundingClientRect();var mouse = {};var game_grid = null;var game_width = canvas.width;var game_height = canvas.height;var fixed = false;/*window.addEventListener('resize', function (e) {game_width = canvas.widthgame_height = canvas.height})*/

