快速在局域网内上线跑酷小游戏

Author:Daniel
2026/01/05 09:13

Description

开发FastAPI集成的2D跑酷游戏,支持局域网访问,包含Excel数据存储和排行榜功能

Tags

コーディングコンテンツ生成

Content

生成FastAPI集成游戏的提示词模板
完整提示词
请创建一个单文件集成的2D跑酷游戏,具体要求如下:
🏗️ 技术架构
•	后端框架: FastAPI
•	前端技术: HTML5 Canvas + JavaScript
•	文件组织: 所有代码集成在一个Python文件中
•	端口设置: 使用8800端口,支持局域网访问(host="0.0.0.0")http://10.205.138.150:8800/
🎮 游戏功能
•	游戏类型: 2D侧边视角跑酷游戏
•	角色控制: 自动奔跑,空格键或鼠标点击跳跃
•	游戏机制: 随机生成障碍物,碰撞即游戏结束
游戏控制: 开始、暂停、重新开始功能
🔧 技术要求
•	代码风格: 精简高效,采用科学的代码结构,用户只需运行 python 文件,即可开始游戏,无需其他依赖文件
•	数据存储: 游戏将数据写入 Excel 文件 day3.xlsx,包括员工工号、姓名、游戏得分、如果 day3.xlsx 不存在,自动创建并添加表头;如果已存在,则只追加记录,不清空原数据登录时间,
•	API设计: 使用Pydantic数据模型,RESTful API风格
•	前端架构: ES6类封装游戏逻辑,模块化设计,所有 HTML、CSS、JavaScript 必须作为字符串内嵌在 Python 脚本中,使用 FastAPI 的 Jinja2 模板或 HTMLResponse 渲染 11. 使用 openpyxl 操作 Excel 文件 12. 页面不需要动画,界面响应快,所有功能简洁清晰规则要求:
🗑️ 游戏规则:
1.	游戏目标:
o	玩家控制一个小人,在跑酷过程中捡垃圾并将其分类到对应的垃圾桶。
o	游戏中的垃圾桶有三种类型:可回收、厨余、其他。
o	每种垃圾桶对应一种垃圾,玩家需要将垃圾分类正确才能得分。
2.	游戏角色:
o	玩家控制的小人最多可以在两只手中各拣起一件垃圾,总共最多可以拿到两件垃圾。
o	拣垃圾的过程没有得分,只有将垃圾放进正确的垃圾桶后才能得分。
3.	垃圾和垃圾桶:
o	游戏中会随机刷出垃圾和垃圾桶,玩家必须根据垃圾桶的类型来分类垃圾。
o	如果手中有对应类型的垃圾,则可以撞到垃圾桶并消耗手中的垃圾。
o	如果手中的垃圾与当前垃圾桶不匹配,玩家需要跳过去,否则游戏失败。
o	撞击垃圾桶时没有得分,只有正确分类垃圾时才能得分。
o	只有当垃圾被正确放入垃圾桶中时,才加一分。
4.	跳跃机制:
o	如果玩家手中的垃圾与当前垃圾桶类型不匹配,则需要跳过垃圾桶。
o	跳跃本身没有加分,只是避免失败。
5.	得分规则:
o	只有将垃圾正确投放进对应的垃圾桶后,才能获得1分。
o	时间不加分,得分完全取决于垃圾分类的准确性。
6.	游戏失败:
o	如果玩家在游戏过程中碰到不匹配的垃圾桶且没有及时跳过,则游戏失败。

📱 界面要求
•	样式设计: 简洁美观的CSS样式,响应式布局,游戏页面背景为白色,风格简洁现代,模拟办公室
•	游戏画布: HTML5 Canvas实现游戏渲染
•	用户界面: 显示得分、控制按钮、游戏状态,玩家首先输入姓名和工号,点击开始按钮后,开始计时
•	排行榜:提供一个路由 /dashboard,展示排行榜页面,读取 Excel 文件中的数据,按游戏用时升序排序显示,列包括排名、工号、姓名、游戏时间、登录时间
•	
•	📁 【素材路径说明】
•	- 所有图片都保存在:C:\Users\nsclonli\Desktop\Day3\BIN
•	- 角色图片:BIN\role.png
•	- 厨余垃圾及其桶在:BIN\Kitchen Waste\
•	- 可回收垃圾及其桶在:BIN\Recyclable Waste\
•	- 其他垃圾及其桶在:BIN\Other Waste\
•	
•	📦 【垃圾分类说明】
•	1. 厨余垃圾(绿色桶):Fish bones.png、Fruit pits.png、Leftover dishes.png、Meat bones.png、Orange peels.png、Kitchen waste bin.png
•	2. 可回收垃圾(蓝色桶):Old books.png、Plastic water bottles.png、Used cardboard boxes.png、Recyclable waste bin.png
•	3. 其他垃圾(橙色桶):Cigarette butts.png、Glue.png、Milk tea cup.png、Plastic bags.png、Wet wipes.png、Other waste bin.png
•	
•	👤 【人物角色】
•	- 使用 BIN\role.png 做为可控制角色(键盘方向键或鼠标拖动)
•	- 角色可以移动,将垃圾拖动到对应的垃圾桶进行投放
•	
•	🕹 【游戏功能要求】
•	- 界面大小建议:1280x720
•	- 拖拽垃圾图标到正确垃圾桶可得分,错误扣分
•	- 随机生成垃圾在屏幕上方
•	- 拖动到垃圾桶范围内判断类型是否正确
•	- 显示当前得分
•	- 倒计时或计时器功能(比如60秒挑战)
🎯 核心特性
•	单文件部署: 所有代码在一个.py文件中,直接运行
•	局域网支持: 可在局域网内多设备访问
•	性能优化: 流畅的游戏循环和渲染
•	错误处理: 基本的异常处理和用户反馈
________________________________________
🔧 关键技术点提示
FastAPI结构
from fastapi import FastAPI
from fastapi.responses import HTMLResponse
import uvicorn
from pydantic import BaseModel
游戏类设计
class ParkourGame {
    constructor() { /* 初始化 */ }
    start() { /* 开始游戏 */ }
    update() { /* 游戏逻辑 */ }
    render() { /* 渲染画面 */ }
    gameLoop() { /* 主循环 */ }
}
网络配置
uvicorn.run(
    app,
    host="0.0.0.0",  # 局域网访问
    port=8800,       # 指定端口
    log_level="warning"
)
________________________________________
📋 可选扩展提示
如需增加功能,可在提示词中添加:
•	音效支持: Web Audio API实现跳跃和碰撞音效
•	难度系统: 逐渐增加游戏速度和障碍物密度
•	视觉效果: 粒子系统、背景动画、角色动画
•	数据持久化: SQLite数据库存储历史得分
•	多人功能: WebSocket实现实时排行榜
•	移动适配: 触摸控制和移动端优化
________________________________________
🎯 输出期望
最终应生成一个集成其中的Python文件,包含:
1.	完整的FastAPI应用
2.	内嵌的HTML/CSS/JavaScript游戏代码
3.	API接口用于数据交互
4.	清晰的代码注释和模块化结构
5.	可直接运行的完整应用

✅ 三类垃圾提示词 + 路径映射
你提到的垃圾分类结构如下:
📁 主目录路径:
C:\Users\nsclonli\Desktop\Day3
📁 垃圾素材文件夹路径:
C:\Users\nsclonli\Desktop\Day3\BIN
________________________________________
🟩 可回收垃圾(Recyclable Waste)
python
复制编辑
recyclable_waste = {
    "旧书": r"BIN\Recyclable Waste\Old books.png",
    "塑料水瓶": r"BIN\Recyclable Waste\Plastic water bottles.png",
    "纸箱": r"BIN\Recyclable Waste\Used cardboard boxes.png",
    "可回收垃圾桶": r"BIN\Recyclable Waste\Recyclable waste bin.png"
}
________________________________________
🟧 其他垃圾(Other Waste)
python
复制编辑
other_waste = {
    "烟头": r"BIN\Other Waste\Cigarette butts.png",
    "胶水": r"BIN\Other Waste\Glue.png",
    "奶茶杯": r"BIN\Other Waste\Milk tea cup.png",
    "塑料袋": r"BIN\Other Waste\Plastic bags.png",
    "湿纸巾": r"BIN\Other Waste\Wet wipes.png",
    "其他垃圾桶": r"BIN\Other Waste\Other waste bin.png"
}
________________________________________
🟫 厨余垃圾(Kitchen Waste)
假设你将“Fish bones”、“Fruit pits”等放在:
BIN\Kitchen Waste 目录下
python
复制编辑
kitchen_waste = {
    "鱼骨": r"BIN\Kitchen Waste\Fish bones.png",
    "果核": r"BIN\Kitchen Waste\Fruit pits.png",
    "剩饭剩菜": r"BIN\Kitchen Waste\Leftover dishes.png",
    "肉骨头": r"BIN\Kitchen Waste\Meat bones.png",
    "橘子皮": r"BIN\Kitchen Waste\Orange peels.png",
    "厨余垃圾桶": r"BIN\Kitchen Waste\Kitchen waste bin.png"
}