用代码复刻10款童年经典小游戏,包括:五子棋、2048、贪吃蛇、打地鼠、飞机大战等等,需要多长时间?
Claude 3.7 Sonnet 给出的答案是:5分钟。
每个游戏30秒生成时间,足以。
不仅仅是功能满足要求,还兼具一定的美观性,此外,10个游戏均为响应式设计,完美适配电脑和手机浏览器。
下面上成果。复制游戏链接到手机浏览器里就能玩。
1. 五子棋
游戏链接:
https://poe.com/preview/Jp27toYapzH8cRHqzquC代码链接:
https://poe.com/s/9weNh0OBxPYYCXJih8Xd
这 UI,感觉一下子就来了!
Bash
我想让你作为一个前端开发专家,帮我生成一个完整的五子棋小游戏的前端代码,要求如下:
1. **技术栈**:
- 使用 HTML、CSS 和纯 JavaScript 实现,不依赖任何框架或外部库。
- 代码结构清晰,注释简洁明了,方便理解。
2. **游戏功能**:
- 生成一个 15x15 的棋盘网格。
- 支持双人对战,黑白棋子交替落子(黑棋先手)。
- 实时检测胜负:任意一方连成五子(横、竖、斜)即胜利,弹出提示并结束游戏。
- 提供“重置游戏”按钮,点击后清空棋盘重新开始。
- 显示当前轮到哪方落子(例如“当前轮到:黑棋”)。
3. **样式与交互**:
- 棋盘使用 CSS Grid 布局,格子边长自适应屏幕大小,保证在小屏幕上也能正常显示。
- 棋子为圆形,黑棋为黑色填充,白棋为白色填充带黑色边框。
- 点击棋盘格子落子,手机端支持触摸点击。
- 界面简洁美观,背景色柔和(如浅灰色),棋盘有边框和格线。
4. **适配性**:
- 确保游戏在 PC 和手机浏览器上都能流畅运行。
- 支持响应式设计,棋盘和控件大小随窗口缩放自动调整。
- 在手机端,触摸事件需与鼠标点击事件等效。
5. **输出要求**:
- 提供完整的 HTML 文件代码(包含内联的 和 <script> 标签)。
- 代码直接复制到浏览器开发者工具中即可运行并体验。
- 不要生成图片或外部资源依赖,确保代码自包含。
请生成符合以上要求的完整代码,并确保逻辑正确、可玩性强。如果有任何假设或优化,代码注释中可以说明。
</code></pre><h1 class='pgc-h-arrow-right' data-track='12'>2. 2048</h1><blockquote class='pgc-blockquote-abstract'><p data-track='13'><strong>游戏链接</strong><span>:<br>https://poe.com/preview/jiKnVqGO0kGb5q93wvLl</span></p><p data-track='14'><strong>代码链接</strong><span>:<br>https://poe.com/s/shZ9yFhYdhsiNfQ5irEZ</span></p></blockquote><p data-track='15'>完美。</p><div class='pgc-img'><p class='pgc-img-caption'></p></div><p data-track='16' class='syl-page-br syl-page-br-hide' style><br></p><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>我想让你作为一个前端开发专家,帮我生成一个完整的 2048 小游戏的前端代码,要求如下:
1. **技术栈**:
- 使用 HTML、CSS 和纯 JavaScript 实现,不依赖任何框架或外部库。
- 代码结构清晰,注释简洁明了,方便理解。
2. **游戏功能**:
- 生成一个 4x4 的棋盘网格。
- 游戏开始时随机生成两个数字方块(值为 2 或 4)。
- 支持上下左右滑动合并方块:相同数字相邻时合并为两倍值,滑动后随机生成一个新方块(2 或 4)。
- 检测胜负:合成 2048 时弹出“胜利”提示;棋盘满且无法移动时弹出“游戏结束”提示。
- 提供“重置游戏”按钮,点击后清空棋盘并重新开始。
3. **样式与交互**:
- 棋盘使用 CSS Grid 布局,方块边长自适应屏幕大小,保证在小屏幕上也能正常显示。
- 每个方块显示数字,背景色根据数字大小变化(如 2 为浅黄色,4 为浅橙色,依次加深)。
- 支持键盘方向键(上下左右)控制,手机端支持触摸滑动(检测手势方向)。
- 界面简洁美观,背景色柔和(如浅灰色),棋盘有边框和格线。
4. **适配性**:
- 确保游戏在 PC 和手机浏览器上都能流畅运行。
- 支持响应式设计,棋盘和控件大小随窗口缩放自动调整。
- 在手机端,触摸滑动事件需与键盘事件等效。
5. **输出要求**:
- 提供完整的 HTML 文件代码(包含内联的 <style> 和 <script> 标签)。
- 代码直接复制到浏览器开发者工具中即可运行并体验。
- 不要生成图片或外部资源依赖,确保代码自包含。
请生成符合以上要求的完整代码,并确保逻辑正确、可玩性强。如果有任何假设或优化,代码注释中可以说明。
</code></pre><h1 class='pgc-h-arrow-right' data-track='18'>3. 贪吃蛇</h1><blockquote class='pgc-blockquote-abstract'><p data-track='19'><strong>游戏链接</strong><span>:<br>https://poe.com/preview/Xh1TatT9gjqLy2BeokTX</span></p><p data-track='20'><strong>代码链接</strong><span>:<br>https://poe.com/s/rdDnJD46guX7ENLOGWSO</span></p></blockquote><p data-track='21'>完美。</p><div class='pgc-img'><p class='pgc-img-caption'></p></div><p data-track='22' class='syl-page-br syl-page-br-hide' style><br></p><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>我想让你作为一个前端开发专家,帮我生成一个完整的贪吃蛇小游戏的前端代码,要求如下:
1. **技术栈**:
- 使用 HTML、CSS 和纯 JavaScript 实现,不依赖任何框架或外部库。
- 使用 <canvas> 元素绘制游戏内容。
- 代码结构清晰,注释简洁明了,方便理解。
2. **游戏功能**:
- 游戏区域为 400x400 像素的矩形(逻辑上划分为 20x20 网格)。
- 初始时生成一条长度为 3 的蛇(绿色方块)和一个随机位置的食物(红色方块)。
- 蛇自动移动,吃到食物后变长 1 格并增加分数,食物重新随机生成。
- 检测失败:蛇撞到边界或自身时弹出“游戏结束”提示并显示分数。
- 提供“重启游戏”按钮,点击后重置蛇和分数。
3. **样式与交互**:
- 使用 canvas 绘制蛇和食物,背景色为浅灰色,边框为深灰色。
- 支持键盘方向键(上下左右)控制蛇的移动方向,手机端支持触摸滑动(检测手势方向)。
- 显示实时分数(例如“分数:10”),位于 canvas 上方。
- 动画流畅,每秒刷新 10-15 次。
4. **适配性**:
- 确保游戏在 PC 和手机浏览器上都能流畅运行。
- canvas 大小在手机端自适应屏幕宽度(最大不超过屏幕宽度)。
- 在手机端,触摸滑动事件需与键盘事件等效。
5. **输出要求**:
- 提供完整的 HTML 文件代码(包含内联的 <style> 和 <script> 标签)。
- 代码直接复制到浏览器开发者工具中即可运行并体验。
- 不要生成图片或外部资源依赖,确保代码自包含。
请生成符合以上要求的完整代码,并确保逻辑正确、可玩性强。如果有任何假设或优化,代码注释中可以说明。
</code></pre><p data-track='24' class='syl-page-br' style><br></p><div class='pgc-img'><p class='pgc-img-caption'></p></div><p data-track='25' class='syl-page-br syl-page-br-hide' style><br></p><h1 class='pgc-h-arrow-right' data-track='26'>4. 俄罗斯方块</h1><blockquote class='pgc-blockquote-abstract'><p data-track='27'><strong>游戏链接</strong><span>:<br>https://poe.com/preview/ScBskc37g3oHv83BlbWD</span></p><p data-track='28'><strong>代码链接</strong><span>:<br>https://poe.com/s/gPHvfe6cEGXFDvJHzC7f</span></p></blockquote><p data-track='29'>完美。</p><div class='pgc-img'><p class='pgc-img-caption'></p></div><p data-track='30' class='syl-page-br syl-page-br-hide' style><br></p><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>我想让你作为一个前端开发专家,帮我生成一个完整的俄罗斯方块小游戏的前端代码,要求如下:
1. **技术栈**:
- 使用 HTML、CSS 和纯 JavaScript 实现,不依赖任何框架或外部库。
- 使用 <canvas> 元素绘制游戏内容。
- 代码结构清晰,注释简洁明了,方便理解。
2. **游戏功能**:
- 游戏区域为 10x20 的网格(每个格子 20x20 像素,总大小 200x400 像素)。
- 随机生成下落方块(包括 I、O、T、S、Z、J、L 七种经典形状)。
- 方块自动下落,每秒下降一格,吃到满行时消除并加分。
- 检测失败:方块堆积到顶部时弹出“游戏结束”提示并显示分数。
- 提供“重启游戏”按钮,点击后清空网格并重置分数。
3. **样式与交互**:
- 使用 canvas 绘制方块和网格,背景色为浅灰色,方块颜色根据形状不同(例如 I 为青色,O 为黄色)。
- 支持键盘控制:左/右键移动,上下键旋转和加速下落。
- 手机端支持触摸操作:左右滑动移动,向上滑动旋转,向下滑动加速。
- 显示实时分数(例如“分数:100”),位于 canvas 上方。
4. **适配性**:
- 确保游戏在 PC 和手机浏览器上都能流畅运行。
- canvas 大小在手机端自适应屏幕宽度(最大不超过屏幕宽度)。
- 在手机端,触摸事件需与键盘事件等效。
5. **输出要求**:
- 提供完整的 HTML 文件代码(包含内联的 <style> 和 <script> 标签)。
- 代码直接复制到浏览器开发者工具中即可运行并体验。
- 不要生成图片或外部资源依赖,确保代码自包含。
请生成符合以上要求的完整代码,并确保逻辑正确、可玩性强。如果有任何假设或优化,代码注释中可以说明。
</code></pre><h1 class='pgc-h-arrow-right' data-track='32'>5. 打地鼠</h1><blockquote class='pgc-blockquote-abstract'><p data-track='33'><strong>游戏链接</strong><span>:<br>https://poe.com/preview/5f05MmxSP1m3YGHKdR7d</span></p><p data-track='34'><strong>代码链接</strong><span>:<br>https://poe.com/s/7ZAcVjm0Jjvz4KvvDqQd</span></p></blockquote><p data-track='35'>除了地鼠长得比较丑,其他没一点毛病了!</p><div class='pgc-img'><p class='pgc-img-caption'></p></div><p data-track='36' class='syl-page-br syl-page-br-hide' style><br></p><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>我想让你作为一个前端开发专家,帮我生成一个完整的打地鼠小游戏的前端代码,要求如下:
1. **技术栈**:
- 使用 HTML、CSS 和纯 JavaScript 实现,不依赖任何框架或外部库。
- 代码结构清晰,注释简洁明了,方便理解。
2. **游戏功能**:
- 生成一个 3x3 的游戏网格(共 9 个洞)。
- 地鼠随机从洞中出现,出现时间为 1 秒,然后消失,之后随机在另一个洞出现。
- 玩家点击(或触摸)地鼠得分,每次命中加 1 分,未命中不扣分。
- 游戏持续 30 秒,结束后弹出“游戏结束”提示并显示最终分数。
- 提供“开始/重玩”按钮,点击后重置计时器和分数。
3. **样式与交互**:
- 游戏区域使用 CSS Grid 布局,每个洞为圆形,背景色为浅棕色(如土堆),地鼠为深棕色圆形。
- 地鼠出现时有简单动画(如从洞中“弹出”效果)。
- 支持鼠标点击和手机端触摸交互,点击效果有轻微反馈(如洞变色)。
- 显示实时分数和倒计时(例如“分数:5 时间:25秒”),位于游戏区域上方。
- 界面简洁有趣,背景色柔和(如浅绿色)。
4. **适配性**:
- 确保游戏在 PC 和手机浏览器上都能流畅运行。
- 支持响应式设计,网格大小随窗口缩放自动调整,手机端每个洞至少 50x50 像素。
- 在手机端,触摸事件需与鼠标点击事件等效。
5. **输出要求**:
- 提供完整的 HTML 文件代码(包含内联的 <style> 和 <script> 标签)。
- 代码直接复制到浏览器开发者工具中即可运行并体验。
- 不要生成图片或外部资源依赖,确保代码自包含。
请生成符合以上要求的完整代码,并确保逻辑正确、可玩性强。如果有任何假设或优化,代码注释中可以说明。
</code></pre><div class='pgc-img'><p class='pgc-img-caption'></p></div><p data-track='38' class='syl-page-br syl-page-br-hide' style><br></p><h1 class='pgc-h-arrow-right' data-track='39'>6. 跳绳</h1><blockquote class='pgc-blockquote-abstract'><p data-track='40'><strong>游戏链接</strong><span>:<br>https://poe.com/preview/9bJ9OvWt3n4Mcx3r8rWP</span></p><p data-track='41'><strong>代码链接</strong><span>:<br>https://poe.com/s/GKdNiMgELAZYsrTF4tyl</span></p></blockquote><p data-track='42'>总体不错,游戏元素的设计还可以继续优化。</p><div class='pgc-img'><p class='pgc-img-caption'></p></div><p data-track='43' class='syl-page-br syl-page-br-hide' style><br></p><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>我想让你作为一个前端开发专家,帮我生成一个完整的跳绳小游戏的前端代码,要求如下:
1. **技术栈**:
- 使用 HTML、CSS 和纯 JavaScript 实现,不依赖任何框架或外部库。
- 使用 <canvas> 元素绘制游戏内容。
- 代码结构清晰,注释简洁明了,方便理解。
2. **游戏功能**:
- 游戏区域为 400x400 像素,屏幕中央有一个小人(简单矩形或圆形表示)。
- 一根绳子从左侧水平移动到右侧,循环往复,速度固定。
- 玩家通过按空格键或点击屏幕让小人跳跃,避开绳子,成功跳跃一次加 1 分。
- 若小人与绳子碰撞,游戏结束,弹出“游戏结束”提示并显示分数。
- 提供“重启游戏”按钮,点击后重置分数和绳子位置。
3. **样式与交互**:
- 小人为黑色方块或圆形,绳子为红色线条,背景色为浅灰色。
- 小人跳跃有简单动画(向上移动后回落),绳子匀速移动。
- 支持键盘空格键跳跃,手机端支持触摸点击。
- 显示实时分数(例如“分数:5”),位于 canvas 上方。
4. **适配性**:
- 确保游戏在 PC 和手机浏览器上都能流畅运行。
- canvas 大小在手机端自适应屏幕宽度(最大不超过屏幕宽度)。
- 在手机端,触摸点击事件需与键盘事件等效。
5. **输出要求**:
- 提供完整的 HTML 文件代码(包含内联的 <style> 和 <script> 标签)。
- 代码直接复制到浏览器开发者工具中即可运行并体验。
- 不要生成图片或外部资源依赖,确保代码自包含。
请生成符合以上要求的完整代码,并确保逻辑正确、可玩性强。如果有任何假设或优化,代码注释中可以说明。
</code></pre><h1 class='pgc-h-arrow-right' data-track='45'>7. 弹珠台</h1><blockquote class='pgc-blockquote-abstract'><p data-track='46'><strong>游戏链接</strong><span>:<br>https://poe.com/preview/nWDtPdVPWY2V2XczeaYQ</span></p><p data-track='47'><strong>代码链接</strong><span>:<br>https://poe.com/s/maHPyChnYYbRzeGYUa2b</span></p></blockquote><p data-track='48'>第一版小球速度很快。</p><div class='pgc-img'><p class='pgc-img-caption'></p></div><p data-track='49' class='syl-page-br syl-page-br-hide' style><br></p><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>我想让你作为一个前端开发专家,帮我生成一个完整的弹珠台小游戏的前端代码,要求如下:
1. **技术栈**:
- 使用 HTML、CSS 和纯 JavaScript 实现,不依赖任何框架或外部库。
- 使用 <canvas> 元素绘制游戏内容。
- 代码结构清晰,注释简洁明了,方便理解。
2. **游戏功能**:
- 游戏区域为 300x500 像素,底部有左右两个挡板(每个宽 60 像素,高 10 像素),顶部有 3 个圆形得分目标(直径 20 像素,水平均匀分布)。
- 游戏开始时,弹珠(直径 10 像素)从顶部随机水平位置以初始速度下落,玩家控制挡板反弹弹珠。
- 弹珠击中每个得分目标加 10 分,目标被击中后消失并在 2 秒后重新生成。
- 弹珠每次被挡板反弹后速度略增(增加挑战性),若掉落至底部(y > 500),游戏结束,弹出“游戏结束”提示并显示最终分数。
- 提供“开始/重启”按钮,点击后重置弹珠位置、挡板位置、目标和分数,并进入游戏状态。
3. **样式与交互**:
- 弹珠为红色圆形,挡板为蓝色矩形,得分目标为绿色圆形,背景色为浅灰色,游戏区域有深灰色边框。
- 弹珠下落模拟简单物理效果:带有重力加速度(每次帧 y 速度增加 0.2),挡板反弹时反转 y 速度并保留部分 x 速度。
- 支持键盘控制:左箭头键移动左挡板,右箭头键移动右挡板(两挡板独立移动,互不干扰,速度平滑)。
- 手机端支持触摸交互:触摸屏幕左侧控制左挡板,右侧控制右挡板,滑动距离映射挡板移动。
- 显示实时分数(例如“分数:30”),位于 canvas 上方;弹珠击中目标或反弹时,短暂显示“+10”或“反弹”文字反馈(1 秒消失)。
- 可选优化:用 JavaScript 模拟简单音效(如击中目标时 console.log 一个“ding”提示)。
4. **适配性**:
- 确保游戏在 PC 和手机浏览器上都能流畅运行。
- canvas 宽度在手机端自适应屏幕(最大 300 像素),高度保持 500 像素,元素比例随宽度缩放。
- 手机端触摸事件与键盘事件等效,支持多点触控(左右挡板可同时移动)。
5. **输出要求**:
- 提供完整的 HTML 文件代码(包含内联的 <style> 和 <script> 标签)。
- 代码直接复制到浏览器开发者工具中即可运行并体验。
- 不要生成图片或外部资源依赖,确保代码自包含。
请生成符合以上要求的完整代码,并确保逻辑正确、可玩性强。如果有任何假设或优化(例如反弹角度随机化或目标移动),代码注释中可以说明。
</code></pre><h1 class='pgc-h-arrow-right' data-track='51'>8. 迷宫游戏</h1><blockquote class='pgc-blockquote-abstract'><p data-track='52'><strong>游戏链接</strong><span>:<br>https://poe.com/preview/7ZSQKM4MucC87XdnH4Oa</span></p><p data-track='53'><strong>代码链接</strong><span>:<br>https://poe.com/s/6AhMvkjrgvEZKCJLTWxk</span></p></blockquote><p data-track='54'>完美。</p><div class='pgc-img'><p class='pgc-img-caption'></p></div><p data-track='55' class='syl-page-br syl-page-br-hide' style><br></p><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>我想让你作为一个前端开发专家,帮我生成一个完整的迷宫游戏的前端代码,要求如下:
1. **技术栈**:
- 使用 HTML、CSS 和纯 JavaScript 实现,不依赖任何框架或外部库。
- 代码结构清晰,注释简洁明了,方便理解。
2. **游戏功能**:
- 生成一个 10x10 的迷宫网格,使用简单的递归回溯算法随机生成(确保从起点到终点始终有解)。
- 起点固定在左上角 (0,0),终点固定在右下角 (9,9)。
- 玩家控制一个小球从起点移动到终点,计时从第一次移动开始,精确到毫秒。
- 小球到达终点时,停止计时,弹出“胜利”提示并显示用时(例如“用时:12.345秒”)。
- 提供两个按钮:“重置游戏”将小球移回起点并重置计时,“重新生成迷宫”生成新迷宫并重置游戏状态。
3. **样式与交互**:
- 迷宫使用 CSS Grid 布局,每个格子 40x40 像素,墙为黑色实线(2px 粗),路径为白色,小球为红色圆形(直径 30 像素),起点为绿色方块,终点为蓝色方块。
- 小球移动时有平滑过渡动画(0.2 秒),撞墙时无法通过并轻微抖动(视觉反馈)。
- 支持键盘方向键(上下左右)控制小球,单次按键移动一格。
- 手机端支持触摸滑动:检测滑动方向(上下左右),滑动距离超过 20 像素时移动一格,避免误触。
- 显示实时计时(例如“时间:12.345秒”),位于游戏区域上方,游戏未开始时显示“时间:0.000秒”。
- 界面简洁,背景色为浅灰色 (#e0e0e0),迷宫区域有深灰色边框。
4. **适配性**:
- 确保游戏在 PC 和手机浏览器上都能流畅运行。
- 支持响应式设计,迷宫网格大小随窗口缩放调整,手机端每个格子最小 30x30 像素(若屏幕过小,保持 10x10 网格并启用滚动)。
- 手机端触摸滑动事件与键盘事件等效,支持连续滑动操作。
5. **输出要求**:
- 提供完整的 HTML 文件代码(包含内联的 <style> 和 <script> 标签)。
- 代码直接复制到浏览器开发者工具中即可运行并体验。
- 不要生成图片或外部资源依赖,确保代码自包含。
请生成符合以上要求的完整代码,并确保逻辑正确、可玩性强。如果有任何假设或优化(例如迷宫生成算法的具体实现或胜利时的动画效果),代码注释中可以说明。
</code></pre><h1 class='pgc-h-arrow-right' data-track='57'>9. 堆积木</h1><blockquote class='pgc-blockquote-abstract'><p data-track='58'><strong>游戏链接</strong><span>:<br>https://poe.com/preview/Opvx1icgHTlCkwMpZkrh</span></p><p data-track='59'><strong>代码链接</strong><span>:<br>https://poe.com/s/8DZAb7RL2Y17Yeb9aPa5</span></p></blockquote><p data-track='60'>完美。</p><div class='pgc-img'><p class='pgc-img-caption'></p></div><p data-track='61' class='syl-page-br syl-page-br-hide' style><br></p><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>我想让你作为一个前端开发专家,帮我生成一个完整的堆积木小游戏的前端代码,要求如下:
1. **技术栈**:
- 使用 HTML、CSS 和纯 JavaScript 实现,不依赖任何框架或外部库。
- 使用 <canvas> 元素绘制游戏内容。
- 代码结构清晰,注释简洁明了,方便理解。
2. **游戏功能**:
- 游戏区域为 300x500 像素,方块(宽 100 像素,高 20 像素)从顶部左右移动下落。
- 玩家点击屏幕或按键放置方块,堆叠成功加 1 分,堆叠高度超过 10 层加额外奖励分。
- 若方块未完全落在下方方块上(偏移过大),堆垛倒塌,游戏结束,弹出“游戏结束”提示并显示分数。
- 提供“重启游戏”按钮,点击后重置堆垛和分数。
3. **样式与交互**:
- 方块为随机颜色(每次生成不同),背景色为浅灰色,底部有一条基准线。
- 方块左右移动有匀速动画,下落时有简单过渡效果。
- 支持鼠标点击或空格键放置,手机端支持触摸点击。
- 显示实时分数和堆叠高度(例如“分数:5 高度:3”),位于 canvas 上方。
4. **适配性**:
- 确保游戏在 PC 和手机浏览器上都能流畅运行。
- canvas 大小在手机端自适应屏幕宽度(最大不超过屏幕宽度)。
- 在手机端,触摸点击事件需与键盘事件等效。
5. **输出要求**:
- 提供完整的 HTML 文件代码(包含内联的 <style> 和 <script> 标签)。
- 代码直接复制到浏览器开发者工具中即可运行并体验。
- 不要生成图片或外部资源依赖,确保代码自包含。
请生成符合以上要求的完整代码,并确保逻辑正确、可玩性强。如果有任何假设或优化,代码注释中可以说明。
</code></pre><h1 class='pgc-h-arrow-right' data-track='63'>10. 飞机大战</h1><blockquote class='pgc-blockquote-abstract'><p data-track='64'><strong>游戏链接</strong><span>:<br>https://poe.com/preview/SElSXKRudcxS8OIZYzYo</span></p><p data-track='65'><strong>代码链接</strong><span>:<br>https://poe.com/s/aBjv9HVsunJr9FOvwYCJ</span></p></blockquote><p data-track='66'>手机上体验真不错。</p><div class='pgc-img'><p class='pgc-img-caption'></p></div><p data-track='67' class='syl-page-br syl-page-br-hide' style><br></p><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>我想让你作为一个前端开发专家,帮我生成一个完整的飞机大战小游戏的前端代码,要求如下:
1. **技术栈**:
- 使用 HTML、CSS 和纯 JavaScript 实现,不依赖任何框架或外部库。
- 使用 <canvas> 元素绘制游戏内容。
- 代码结构清晰,注释简洁明了,方便理解。
2. **游戏功能**:
- 游戏区域为 300x500 像素,玩家控制一架飞机(底部初始位置),敌机从顶部随机生成。
- 玩家飞机每隔 0.5 秒自动发射子弹,击落敌机加 10 分,敌机到达底部或撞到玩家飞机则游戏结束。
- 敌机每隔 2 秒生成一架,随机水平位置向下移动。
- 提供“重启游戏”按钮,点击后重置飞机位置和分数。
3. **样式与交互**:
- 玩家飞机为蓝色三角形,敌机为红色方块,子弹为黄色小圆点,背景色为浅灰色。
- 支持键盘左右键移动飞机,按空格键发射子弹,手机端触摸滑动控制移动并自动射击。
- 显示实时分数(例如“分数:50”),位于 canvas 上方。
- 动画流畅,子弹和敌机匀速移动。
4. **适配性**:
- 确保游戏在 PC 和手机浏览器上都能流畅运行。
- canvas 大小在手机端自适应屏幕宽度(最大不超过屏幕宽度)。
- 在手机端,触摸滑动事件需与键盘事件等效。
5. **输出要求**:
- 提供完整的 HTML 文件代码(包含内联的 <style> 和 <script> 标签)。
- 代码直接复制到浏览器开发者工具中即可运行并体验。
- 不要生成图片或外部资源依赖,确保代码自包含。
请生成符合以上要求的完整代码,并确保逻辑正确、可玩性强。如果有任何假设或优化,代码注释中可以说明。</code></pre><hr><blockquote class='pgc-blockquote-abstract'><p data-track='70'>我是木易,一个专注AI领域的技术产品经理,国内Top2本科+美国Top10 CS硕士。</p><p data-track='71'>相信AI是普通人的“外挂”,致力于分享AI全维度知识。这里有最新的AI科普、工具测评、效率秘籍与行业洞察。</p><p data-track='72'>欢迎关注“AI信息Gap”,用AI为你的未来加速。</p></blockquote><hr><h1 class='pgc-h-arrow-right' data-track='74'>精选推荐</h1></div>
<div class="clearfix mb10">
<div class="share fr">
<div class="social-share mb20 ta-c" data-initialized="true">
<a href="#" class="social-share-icon iconfont icon-weibo"></a>
<a href="#" class="social-share-icon iconfont icon-qq"></a>
<a href="#" class="social-share-icon iconfont icon-wechat"></a>
<a href="#" class="social-share-icon iconfont icon-qzone"></a>
</div>
<script src="http://www.zhezhongyun.com/zb_users/theme/tx_hao/script/social-share.min.js"></script>
</div>
<div class="info-tag">
<a href="http://www.zhezhongyun.com/tags-171.html" title="查看更多标签内容" rel="tag" target="_blank">标签</a> </div>
</div>
<div class="info-next">
<ul class="row">
<li class="col-12 col-m-24 mb10">上一篇:<a href="http://www.zhezhongyun.com/post/3000.html" title="Vue3 setup()函数与更推荐用哪个?你知道吗">Vue3 setup()函数与更推荐用哪个?你知道吗</a></li>
<li class="col-12 col-m-24 ta-r mb10">下一篇:<a href="http://www.zhezhongyun.com/post/3002.html" title="安全攻防七:CSRF/SSRF,为啥避免了XSS,还是“被发送”了一条微博">安全攻防七:CSRF/SSRF,为啥避免了XSS,还是“被发送”了一条微博</a></li>
</ul>
</div>
</div>
<h2 class="tx-title">相关推荐</h2>
<div class="home-news">
<dl class="news-box clearfix pd20 ">
<dt class="f-18 mb10"><a href="http://www.zhezhongyun.com/post/4655.html" title="Flutter TextField 边框样式以及提示文本" class="f-black" target="_blank">Flutter TextField 边框样式以及提示文本</a></dt>
<dd class="news-txt">
<p class="f-gray f-13">题记——执剑天涯,从你的点滴积累开始,所及之处,必精益求精。1引言1.1情景一一个文本框默认情况下可编辑(允许输入文本的情况)获取焦点(正在输入文本)下,会有默认的一个下划线,这个下划线的颜...</p>
</dd>
</dl>
<dl class="news-box clearfix pd20 ">
<dt class="f-18 mb10"><a href="http://www.zhezhongyun.com/post/4654.html" title="让最懂产品的人成为销售员 亿家净水试水“微分销”" class="f-black" target="_blank">让最懂产品的人成为销售员 亿家净水试水“微分销”</a></dt>
<dd class="news-txt">
<p class="f-gray f-13">国内领先的净水设备服务供应商亿家净水开始试水“微分销”,借助第三方微分销平台——有赞建立的亿家净水微商城近日已经开通。根据规划,下一步将把公司300多名员工以及遍布全国的6000多名安装服务工程师纳入...</p>
</dd>
</dl>
<dl class="news-box clearfix pd20 ">
<dt class="f-18 mb10"><a href="http://www.zhezhongyun.com/post/4653.html" title="案例分享丨各品牌软水机和中央净水机的旁通阀介绍、区分辨认和使" class="f-black" target="_blank">案例分享丨各品牌软水机和中央净水机的旁通阀介绍、区分辨认和使</a></dt>
<dd class="news-txt">
<p class="f-gray f-13">案例:前几天接到一个浙江的客户反馈,他说凯优的软水机安装后加的盐,使用4、5年了一直没加过盐到现在盐还是那么多,客户以前以为加完盐后能管好长时间就没把软水机当回事,最近听朋友说软水机需要定期加盐客户...</p>
</dd>
</dl>
<dl class="news-box clearfix pd20 ">
<dt class="f-18 mb10"><a href="http://www.zhezhongyun.com/post/4652.html" title="一文教你Java字符串处理(String,StringBuffer,StringBuild)" class="f-black" target="_blank">一文教你Java字符串处理(String,StringBuffer,StringBuild)</a></dt>
<dd class="news-txt">
<p class="f-gray f-13">前言本文篇幅较长,但都是满满的干货,请大家耐心观看,相信会有不小的收获。本人在总结的过程中也收获了很多的知识,也希望大家可以一起借鉴学习下,希望大家最后都能有所收获!再言字符串的分类在java.lan...</p>
</dd>
</dl>
<dl class="news-box clearfix pd20 ">
<dt class="f-18 mb10"><a href="http://www.zhezhongyun.com/post/4651.html" title="浏览器渲染引擎之从入门到优化实践" class="f-black" target="_blank">浏览器渲染引擎之从入门到优化实践</a></dt>
<dd class="news-txt">
<p class="f-gray f-13">在当今互联网时代,浏览器扮演着人们访问网页和应用程序的主要工具。当我们在浏览网页的时候,页面的展示和交互都是依靠浏览器进行实现的。所以浏览器的表现和性能直接影响着用户的体验。为了提供快速且高效的浏览体...</p>
</dd>
</dl>
<dl class="news-box clearfix pd20 ">
<dt class="f-18 mb10"><a href="http://www.zhezhongyun.com/post/4650.html" title="NAVI S1mple准星+视角+持枪控制台设置大全 新增显示器设置" class="f-black" target="_blank">NAVI S1mple准星+视角+持枪控制台设置大全 新增显示器设置</a></dt>
<dd class="news-txt">
<p class="f-gray f-13">简单男孩S1mple科斯特利耶夫(AleksandrKostyliev)生日1997年10月2日准星设置cl_crosshairalpha255;cl_crosshaircolor5;cl...</p>
</dd>
</dl>
<dl class="news-box clearfix pd20 ">
<dt class="f-18 mb10"><a href="http://www.zhezhongyun.com/post/4649.html" title="2014福布斯全球名人榜:女王碧昂斯登顶 李娜85" class="f-black" target="_blank">2014福布斯全球名人榜:女王碧昂斯登顶 李娜85</a></dt>
<dd class="news-txt">
<p class="f-gray f-13">最近,有一篇名为《浙商炮轰马云:若不改作风,5年内必倒》的文章,在网络和自媒体上流传甚广,引起广泛关注。这篇文章是怎样出炉的?针对这个问题,《浙商》杂志记者进行了调查。2014福布斯全球名人榜前20人...</p>
</dd>
</dl>
<dl class="news-box clearfix pd20 ">
<dt class="f-18 mb10"><a href="http://www.zhezhongyun.com/post/4648.html" title="美国处女河中有一条步道,全程只有25公里" class="f-black" target="_blank">美国处女河中有一条步道,全程只有25公里</a></dt>
<dd class="news-txt">
<p class="f-gray f-13">美国<:articlestyle="BOX-SIZING:border-box;BORDER-BOTTOM:0px;TEXT-ALIGN:left;BORDER-LEFT:0px...</p>
</dd>
</dl>
<dl class="news-box clearfix pd20 ">
<dt class="f-18 mb10"><a href="http://www.zhezhongyun.com/post/4647.html" title="Unreal丨模块化路牌蓝图制作(路牌模型)" class="f-black" target="_blank">Unreal丨模块化路牌蓝图制作(路牌模型)</a></dt>
<dd class="news-txt">
<p class="f-gray f-13">本期文章介绍使用虚幻蓝图制作一个模块化的路牌,先来看一下完成后的效果。如图,这些路牌全部是使用同一个蓝图制作的资产。1素材准备基础的路牌模型我使用的是虚幻商城中的资产“FreewayProps”。然...</p>
</dd>
</dl>
<dl class="news-box clearfix pd20 ">
<dt class="f-18 mb10"><a href="http://www.zhezhongyun.com/post/4646.html" title="神奇白Tee加减法,1+1&gt;2(equal tee是什么管件)" class="f-black" target="_blank">神奇白Tee加减法,1+1&gt;2(equal tee是什么管件)</a></dt>
<dd class="news-txt">
<p class="f-gray f-13">来源:时尚芭莎说到炎炎夏日,除了空调、冰棍、西瓜、网络是缺一不可的以外,衣柜里怎么能少一件白Tee呢?2"style="text-decoration:none;outline:none;c...</p>
</dd>
</dl>
<dl class="news-box clearfix pd20 ">
<dt class="f-18 mb10"><a href="http://www.zhezhongyun.com/post/4645.html" title="跟着快联电路学习PCB设计的六个过程" class="f-black" target="_blank">跟着快联电路学习PCB设计的六个过程</a></dt>
<dd class="news-txt">
<p class="f-gray f-13">PADS是一种常用的PCB设计软件,作为PCB设计工程师,必须掌握熟练应用的设计工具。与AD相比,PADS在开始和设计上相对复杂,需要更多的耐心和时间。在使用PADS设计PCB的过程中,需要关注印刷板...</p>
</dd>
</dl>
<dl class="news-box clearfix pd20 ">
<dt class="f-18 mb10"><a href="http://www.zhezhongyun.com/post/4644.html" title="Allegro软件中怎么通过ROOM框来放置元器件呢?" class="f-black" target="_blank">Allegro软件中怎么通过ROOM框来放置元器件呢?</a></dt>
<dd class="news-txt">
<p class="f-gray f-13">上述我们讲解了怎么快速的将元器件放置在PCB板上,通过图6-40所示的图可以看出,器件放置的都是很零散的,不是按模块或者是按页放置的,这里给大家介绍一些,通过在原理图添加ROOM属性,然后通过ROOM...</p>
</dd>
</dl>
<dl class="news-box clearfix pd20 ">
<dt class="f-18 mb10"><a href="http://www.zhezhongyun.com/post/4643.html" title="电路设计入门-从DXP2004双闪灯电路设计开始" class="f-black" target="_blank">电路设计入门-从DXP2004双闪灯电路设计开始</a></dt>
<dd class="news-txt">
<p class="f-gray f-13">DXP2004!?为什么要用这么老的版本呢?因为DXP2004是最经典的版本!protel是最原始的版本,版本包括protelforDOS,protel98,protel99se;后面prte...</p>
</dd>
</dl>
<dl class="news-box clearfix pd20 ">
<dt class="f-18 mb10"><a href="http://www.zhezhongyun.com/post/4642.html" title="小幅改进 微软或启用Outlook Mail品牌" class="f-black" target="_blank">小幅改进 微软或启用Outlook Mail品牌</a></dt>
<dd class="news-txt">
<p class="f-gray f-13">去年十月微软就对Outlook.com及相关网站进行了改版,改进了下拉菜单,使得用户能够在微软相关的服务,比如OneDrive以及OfficeOnline之间切换。不过现在看来,微软似乎准备再一次对...</p>
</dd>
</dl>
<dl class="news-box clearfix pd20 ">
<dt class="f-18 mb10"><a href="http://www.zhezhongyun.com/post/4641.html" title="将多个属性传递给 Vue 组件的几种方式" class="f-black" target="_blank">将多个属性传递给 Vue 组件的几种方式</a></dt>
<dd class="news-txt">
<p class="f-gray f-13">所有使用基于组件的体系结构(如Vue和React)的开发人员都知道,创建可重用组件是很困难的,而且大多数情况下,最终会通过传入大量的属性,以便从外部更容易地控制和自定义组件。这并不坏,但是传递大量属性...</p>
</dd>
</dl>
</div>
</div>
<div class="side-box col-6 col-m-24 col2-">
<dl class="side-hot">
<dt>一周热门</dt>
<dd>
<ul>
<li>
<a href="http://www.zhezhongyun.com/post/513.html" title="b端详情页:各种信息聚集地,设计师要如何规划这一亩三分地呢" target="_blank">
<h2 class="f-15">b端详情页:各种信息聚集地,设计师要如何规划这一亩三分地呢</h2>
</a>
</li>
<li>
<a href="http://www.zhezhongyun.com/post/1123.html" title="漏洞系列一一看我一招征服漏洞 SSRF" target="_blank">
<h2 class="f-15">漏洞系列一一看我一招征服漏洞 SSRF</h2>
</a>
</li>
<li>
<a href="http://www.zhezhongyun.com/post/1118.html" title="接口测试遇到500报错?别慌,你的头部可能有点问题" target="_blank">
<h2 class="f-15">接口测试遇到500报错?别慌,你的头部可能有点问题</h2>
</a>
</li>
<li>
<a href="http://www.zhezhongyun.com/post/1120.html" title="Web前端需要学什么?Web前端开发需要学习哪些?" target="_blank">
<h2 class="f-15">Web前端需要学什么?Web前端开发需要学习哪些?</h2>
</a>
</li>
<li>
<a href="http://www.zhezhongyun.com/post/1689.html" title="前端Flex布局可视化布局工具介绍,vue和html5快速设计利器" target="_blank">
<h2 class="f-15">前端Flex布局可视化布局工具介绍,vue和html5快速设计利器</h2>
</a>
</li>
<li>
<a href="http://www.zhezhongyun.com/post/1140.html" title="「资讯」为强迫用户使用Edge浏览器,微软又出新招数" target="_blank">
<h2 class="f-15">「资讯」为强迫用户使用Edge浏览器,微软又出新招数</h2>
</a>
</li>
<li>
<a href="http://www.zhezhongyun.com/post/1682.html" title="HTML 简介(html简介及优缺点)" target="_blank">
<h2 class="f-15">HTML 简介(html简介及优缺点)</h2>
</a>
</li>
<li>
<a href="http://www.zhezhongyun.com/post/1242.html" title="HBuilderX,uni-app创建HTML5项目,同时支持浏览器和移动端" target="_blank">
<h2 class="f-15">HBuilderX,uni-app创建HTML5项目,同时支持浏览器和移动端</h2>
</a>
</li>
<li>
<a href="http://www.zhezhongyun.com/post/1684.html" title="关于HTML5被简称做H5,你怎么看?(html5缩写)" target="_blank">
<h2 class="f-15">关于HTML5被简称做H5,你怎么看?(html5缩写)</h2>
</a>
</li>
<li>
<a href="http://www.zhezhongyun.com/post/1499.html" title="现在页面实时聊天都使用Websocket技术实现吗?" target="_blank">
<h2 class="f-15">现在页面实时聊天都使用Websocket技术实现吗?</h2>
</a>
</li>
</ul>
</dd>
</dl>
<dl class="function" id="divPrevious">
<dt class="function_t">最近发表</dt><dd class="function_c">
<ul><li><a title="Flutter TextField 边框样式以及提示文本" href="http://www.zhezhongyun.com/post/4655.html">Flutter TextField 边框样式以及提示文本</a></li>
<li><a title="让最懂产品的人成为销售员 亿家净水试水“微分销”" href="http://www.zhezhongyun.com/post/4654.html">让最懂产品的人成为销售员 亿家净水试水“微分销”</a></li>
<li><a title="案例分享丨各品牌软水机和中央净水机的旁通阀介绍、区分辨认和使" href="http://www.zhezhongyun.com/post/4653.html">案例分享丨各品牌软水机和中央净水机的旁通阀介绍、区分辨认和使</a></li>
<li><a title="一文教你Java字符串处理(String,StringBuffer,StringBuild)" href="http://www.zhezhongyun.com/post/4652.html">一文教你Java字符串处理(String,StringBuffer,StringBuild)</a></li>
<li><a title="浏览器渲染引擎之从入门到优化实践" href="http://www.zhezhongyun.com/post/4651.html">浏览器渲染引擎之从入门到优化实践</a></li>
<li><a title="NAVI S1mple准星+视角+持枪控制台设置大全 新增显示器设置" href="http://www.zhezhongyun.com/post/4650.html">NAVI S1mple准星+视角+持枪控制台设置大全 新增显示器设置</a></li>
<li><a title="2014福布斯全球名人榜:女王碧昂斯登顶 李娜85" href="http://www.zhezhongyun.com/post/4649.html">2014福布斯全球名人榜:女王碧昂斯登顶 李娜85</a></li>
<li><a title="美国处女河中有一条步道,全程只有25公里" href="http://www.zhezhongyun.com/post/4648.html">美国处女河中有一条步道,全程只有25公里</a></li>
<li><a title="Unreal丨模块化路牌蓝图制作(路牌模型)" href="http://www.zhezhongyun.com/post/4647.html">Unreal丨模块化路牌蓝图制作(路牌模型)</a></li>
<li><a title="神奇白Tee加减法,1+1&gt;2(equal tee是什么管件)" href="http://www.zhezhongyun.com/post/4646.html">神奇白Tee加减法,1+1&gt;2(equal tee是什么管件)</a></li>
</ul>
</dd>
</dl>
<dl class="function" id="divTags">
<dt class="function_t">标签列表</dt><dd class="function_c">
<ul><li><a title="HTML 教程" href="http://www.zhezhongyun.com/tags-1.html">HTML 教程<span class="tag-count"> (33)</span></a></li>
<li><a title="HTML 简介" href="http://www.zhezhongyun.com/tags-3.html">HTML 简介<span class="tag-count"> (35)</span></a></li>
<li><a title="HTML 实例/测验" href="http://www.zhezhongyun.com/tags-46.html">HTML 实例/测验<span class="tag-count"> (32)</span></a></li>
<li><a title="HTML 测验" href="http://www.zhezhongyun.com/tags-47.html">HTML 测验<span class="tag-count"> (32)</span></a></li>
<li><a title="JavaScript 和 HTML DOM 参考手册" href="http://www.zhezhongyun.com/tags-54.html">JavaScript 和 HTML DOM 参考手册<span class="tag-count"> (32)</span></a></li>
<li><a title="HTML 拓展阅读" href="http://www.zhezhongyun.com/tags-55.html">HTML 拓展阅读<span class="tag-count"> (30)</span></a></li>
<li><a title="HTML文本框样式" href="http://www.zhezhongyun.com/tags-60.html">HTML文本框样式<span class="tag-count"> (31)</span></a></li>
<li><a title="HTML滚动条样式" href="http://www.zhezhongyun.com/tags-61.html">HTML滚动条样式<span class="tag-count"> (34)</span></a></li>
<li><a title="HTML5 浏览器支持" href="http://www.zhezhongyun.com/tags-113.html">HTML5 浏览器支持<span class="tag-count"> (33)</span></a></li>
<li><a title="HTML5 新元素" href="http://www.zhezhongyun.com/tags-114.html">HTML5 新元素<span class="tag-count"> (33)</span></a></li>
<li><a title="HTML5 WebSocket" href="http://www.zhezhongyun.com/tags-131.html">HTML5 WebSocket<span class="tag-count"> (30)</span></a></li>
<li><a title="HTML5 代码规范" href="http://www.zhezhongyun.com/tags-132.html">HTML5 代码规范<span class="tag-count"> (32)</span></a></li>
<li><a title="HTML5 标签" href="http://www.zhezhongyun.com/tags-135.html">HTML5 标签<span class="tag-count"> (717)</span></a></li>
<li><a title="HTML5 标签 (已废弃)" href="http://www.zhezhongyun.com/tags-137.html">HTML5 标签 (已废弃)<span class="tag-count"> (75)</span></a></li>
<li><a title="HTML5电子书" href="http://www.zhezhongyun.com/tags-141.html">HTML5电子书<span class="tag-count"> (32)</span></a></li>
<li><a title="HTML5开发工具" href="http://www.zhezhongyun.com/tags-142.html">HTML5开发工具<span class="tag-count"> (34)</span></a></li>
<li><a title="HTML5小游戏源码" href="http://www.zhezhongyun.com/tags-143.html">HTML5小游戏源码<span class="tag-count"> (34)</span></a></li>
<li><a title="HTML5模板下载" href="http://www.zhezhongyun.com/tags-144.html">HTML5模板下载<span class="tag-count"> (30)</span></a></li>
<li><a title="HTTP 状态消息" href="http://www.zhezhongyun.com/tags-159.html">HTTP 状态消息<span class="tag-count"> (33)</span></a></li>
<li><a title="HTTP 方法:GET 对比 POST" href="http://www.zhezhongyun.com/tags-160.html">HTTP 方法:GET 对比 POST<span class="tag-count"> (33)</span></a></li>
<li><a title="键盘快捷键" href="http://www.zhezhongyun.com/tags-168.html">键盘快捷键<span class="tag-count"> (35)</span></a></li>
<li><a title="标签" href="http://www.zhezhongyun.com/tags-171.html">标签<span class="tag-count"> (226)</span></a></li>
<li><a title="HTML button formtarget 属性" href="http://www.zhezhongyun.com/tags-218.html">HTML button formtarget 属性<span class="tag-count"> (30)</span></a></li>
<li><a title="CSS 水平对齐 (Horizontal Align)" href="http://www.zhezhongyun.com/tags-260.html">CSS 水平对齐 (Horizontal Align)<span class="tag-count"> (30)</span></a></li>
<li><a title="opacity 属性" href="http://www.zhezhongyun.com/tags-319.html">opacity 属性<span class="tag-count"> (32)</span></a></li>
</ul>
</dd>
</dl>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="wide ta-c f-12">
</div>
</div>
<div class="fixed-box ">
<ul>
<li class="pchide wapflex"><a href="http://www.zhezhongyun.com/"><i class="fa fa-home"></i> 首页</a></li>
<li><a href="http://www.zhezhongyun.com/shoulu.html" title="收录申请" target="_blank"><i class="fa fa-chain-broken mr5"></i>收录</a></li>
<li><span class="gotop"><i class="fa fa-caret-up mr5"></i> 顶部</span></li>
</ul>
</div>
<script src="http://www.zhezhongyun.com/zb_users/theme/tx_hao/script/txcstx.min.js?v=2024-12-04"></script>
</body>
</html><!--117.41 ms , 13 queries , 3415kb memory , 0 error-->