做一个“心情罐”
心情罐功能在有这么强的AI加持下我实现这个效果前后应该花了一天的时间刚开始是让AI按照设计图去实现无论让它怎么调都是堆叠的像搭积木堆金字塔没有空间感就像瓶子被拍扁了。我知道应该是缺少什么关键的知识导致无法实现效果我就去github 上.问 copilot 让它找找有没有相关效果的的demo。感谢github 上的前辈们的无私分享解决了我的问题。记录一下这个探索过程。找一下 瓶子里装珠子效果的demo找到了demo但是又想到跟我的需求又不一样不能直接用于是根据我遇到的难点继续问。我需要一个实现思路珠子的层级和摆放怎么控制的这次提问的总结我不知道怎么选则于是继续发问。有没有成熟的堆叠算法呢进入一组珠子层级有些在前有些在后的不好把控这次我毫不犹豫选择了 空间分割。给的代码class SpatialGrid { constructor(width, height, cellSize) { this.width width; this.height height; this.cellSize cellSize; this.cells new Map(); } getKey(x, y) { return ${Math.floor(x / this.cellSize)},${Math.floor(y / this.cellSize)}; } add(particle) { const key this.getKey(particle.x, particle.y); if (!this.cells.has(key)) { this.cells.set(key, []); } this.cells.get(key).push(particle); } // 获取附近的珠子只检测相邻的几个格子 getNearby(particle) { const cx Math.floor(particle.x / this.cellSize); const cy Math.floor(particle.y / this.cellSize); const nearby []; for (let dx -1; dx 1; dx) { for (let dy -1; dy 1; dy) { const key ${cx dx},${cy dy}; if (this.cells.has(key)) { nearby.push(...this.cells.get(key)); } } } return nearby; } clear() { this.cells.clear(); } } // 改进的碰撞检测 handleCollisions(particle, grid) { const nearby grid.getNearby(particle); for (let other of nearby) { if (particle other) continue; // ... 碰撞检测逻辑 } }在选择好实现思路后我就将这个思路和代码 发给 codex然后架构搭好后只需要调整一些细节就实现了这个效果。实现了效果后让AI 总结了一个提示词发给任何AI 都可以实现这个效果了。可直接交给任何 AI 的 Flutter 实现提示词你是一名资深 Flutter 动画、几何算法和性能优化工程师。请直接在现有项目中实现一个“粒子掉入透明容器并自然堆叠”的组件不要只提供思路、伪代码或孤立示例。 项目输入 - 容器背景资源[背景图路径] - 玻璃高光或前景资源[前景图路径] - 粒子资源[粒子图片列表及业务类型映射] - 数据来源[接口模型或状态字段] - 容器设计尺寸[宽×高] - 内部可用区域[位置、宽高或可推导的设计参数] - 最大展示数量[默认100] - 状态管理方式[GetX/Provider/Bloc/Riverpod/其他] - 目标页面或组件[路径] - 项目规范[AGENTS.md 或其他规范路径] 实施要求 在修改代码前先读取项目规范、目标页面、直接依赖、资源声明、路由和现有状态流。能够从仓库中确认的信息不要询问用户。保持最小改动不修改无关业务行为不顺手重构。 一、业务数据适配 1. 将分类统计数量展开为带稳定 key 和 type 的粒子列表。 2. 忽略未知分类、空分类和负数。 3. 数量不超过上限时按真实数量展示。 4. 超过上限时使用最大余数法按真实比例分配最终展示数量必须严格等于上限。 5. 稳定 key 不得依赖接口没有提供的 ID可以使用“数据周期类型序号”。 二、视觉结构 1. 使用三层 Stack容器背景、经过内部路径裁剪的粒子、玻璃高光前景。 2. 背景和高光层不参与点击。 3. 使用独立几何模型描述容器侧壁、瓶底和内部安全区域。 4. 离线模板生成和运行时 ClipPath 必须共享相同的几何公式禁止维护两套不一致的边界。 5. 粒子必须完整限制在容器内部不能仅依赖图片遮挡越界内容。 三、离线模板生成 1. 提供一个可以独立运行的 Dart 工具预生成1最大数量的全部最终落点模板。 2. 不允许在 Flutter 运行时执行完整物理求解。 3. 离线工具使用三维球体近似粒子模拟重力、速度衰减、球体碰撞、侧壁约束和瓶底约束。 4. 使用确定性随机种子使相同参数每次生成相同结果。 5. 粒子视觉尺寸从100%逐步尝试到70%空间不足时自动选择更小尺寸。 6. 尝试多个随机种子和相机角度优先选择无越界、可见度更高、遮挡更少的投影。 7. 低数量建议每个数量生成3套变体更高数量生成1套。 8. 每个槽位至少保存 left、top、size、rotation、depth。 9. 所有坐标必须归一化不能绑定具体设备像素。 10. 推荐使用10字节二进制结构 left:uint16 top:uint16 size:uint16 rotation:int16 depth:int16 11. 每个数量单独保存一个模板文件运行时只加载当前数量对应的文件。 12. 生成时强制校验数量范围、槽位数量、重复槽位、有限数值、容器越界、文件长度和编码反解误差。 13. 将模板目录注册到 Flutter assets。 四、运行时模板加载 1. 根据当前粒子数量异步读取对应模板并严格校验文件长度。 2. 缓存当前模板相同数量的进行中请求必须复用。 3. 模板读取失败时降级为空容器不得阻断页面其他内容。 4. 使用 LayoutBuilder根据实际容器尺寸反解归一化坐标。 5. 使用页面级随机种子选择低数量模板变体。 6. 使用稳定哈希将粒子映射到模板槽位保证普通 rebuild 不改变位置。 7. 缓存模板解析结果、稳定哈希和粒子 Widget。 8. 粒子列表变化时清理相关缓存但普通状态重建不能触发布局变化。 五、入罐动画 1. 每颗粒子从容器入口上方进入单颗动画总时长约900ms。 2. 动画分为下落、第一次回弹、滚向最终位置、阻尼收敛四段。 3. 多颗粒子错峰进入数量越多间隔越短整段动画最长控制在约2秒。 4. 所有动画必须基于模板落点计算相对 offset。 5. 动画结束时 offset 必须严格归零rotation 必须严格等于模板 rotation。 6. 后落粒子可以向附近最多两颗已落粒子施加短促位移和旋转反馈但不得修改最终模板位置。 7. 粒子的方向、旋转和动画幅度必须使用稳定哈希禁止逐帧随机。 8. 首次进入页面播放动画切换数据周期、刷新数据或普通状态重建不重复播放。 9. MediaQuery.disableAnimations 为 true 时直接展示最终状态。 10. 动画控制器必须正确释放不得造成内存泄漏。 六、动态遮挡和性能 1. 使用二维空间网格查询附近粒子避免每帧进行全量两两检测。 2. 中小数量只为真实重叠的粒子建立前后关系。 3. 根据模板 depth、当前纵坐标和稳定索引计算绘制顺序。 4. 中小数量可以使用有向图加拓扑排序出现关系环时按稳定最终顺序兜底。 5. 高密度数量使用量化后的 depth、当前纵坐标和稳定索引直接排序避免构建稠密拓扑图。 6. 设置明确的粒子数量上限不引入不必要的第三方实时物理引擎。 7. 逐帧回调中不得重新加载模板、创建图片资源、生成随机数或执行物理结算。 8. 尽可能复用粒子 Widget、布局结果和邻接数据。 七、代码质量 1. 业务状态、粒子数据、模板数据、离线生成器和运行时动画组件必须职责分离。 2. 为新增或修改的类和方法添加必要注释注释只解释设计原因、边界和约束。 3. 不修改生成代码不重构无关模块。 4. 资源统一使用项目已有的资源常量方式引用。 5. 日志、状态管理、路由和命名方式遵循项目现有规范。 6. 如果仓库存在 AGENTS.md、README 或开发规范必须优先遵守。 八、验收场景 至少验证以下数量 0、1、2、15、16、30、31、60、100、超过最大数量。 同时验证 - 单一类型和多类型混合 - 超量数据的展示比例正确 - 页面 rebuild 后位置不跳动 - 切换数据周期不重复播放首次动画 - 粒子不穿出容器 - 动画过程中无明显闪层 - 最后一帧精确回到模板落点 - 模板缺失、损坏或长度异常时正常降级 - 系统关闭动画时直接展示最终状态 - 不同屏幕宽度下布局保持一致 - 最大粒子数量下无明显掉帧 - 页面销毁后没有未释放的动画控制器。 请直接完成代码实现、模板生成、资源注册和必要验证不要只回复实现建议。 最后按以下格式汇报 1. 变更摘要 2. 核心算法和关键取舍 3. 未改变的现有行为 4. 执行的验证命令及结果 5. 仍需人工视觉验收的项目。这段提示词最关键的地方是明确要求 AI 采用离线确定终点运行时只负责演绎过程。如果只告诉 AI“实现一个自然掉落的粒子罐”它很可能选择随机定位或运行时实时碰撞。效果可能很快出现但通常也会很快遇到穿模、闪层、重建跳动、性能不稳定和结果无法复现等问题。

相关新闻

宏智树AI:ChatGPT学术版驱动的一站式论文写作智能解决方案

宏智树AI:ChatGPT学术版驱动的一站式论文写作智能解决方案

在人工智能深度赋能学术领域的今天,论文写作早已不再是“孤军奋战”的繁琐工程。一款专业、高效、合规的智能辅助工具,能让学术创作事半功倍。宏智树AI,正是这样一款由ChatGPT学术版模型驱动、搭载AI5.0技术架构的高端学术智能解决方案平台&a…

2026/8/22 10:10:51 阅读更多 →
Linux打印机驱动 foo2zjs 完全指南:让 100 多台旧激光打印机复活

Linux打印机驱动 foo2zjs 完全指南:让 100 多台旧激光打印机复活

Linux打印机驱动 foo2zjs 完全指南:让 100 多台旧激光打印机复活 【免费下载链接】foo2zjs A linux printer driver for QPDL protocol - copy of http://foo2zjs.rkkda.com/ 项目地址: https://gitcode.com/gh_mirrors/fo/foo2zjs foo2zjs 是一套免费的 Lin…

2026/8/22 10:10:51 阅读更多 →
数据中心高压三相逆变电源技术解析:直流540V/800V转交流220V/380V解决方案

数据中心高压三相逆变电源技术解析:直流540V/800V转交流220V/380V解决方案

引言:数据中心供电的“心脏”升级 在数字化时代,数据中心作为信息社会的基石,其供电系统的可靠性、效率和功率密度直接关系到业务的连续性与运营成本。传统的数据中心供电架构通常采用多级变换方案,存在效率低、体积大、维护复杂等…

2026/8/22 10:10:51 阅读更多 →

最新新闻

LangChain | 第二部分:模型IO过程解析

LangChain | 第二部分:模型IO过程解析

LangChain | 第二部分:模型IO过程解析 1. 提示模板 2. 模型调用 3. 输出解析 4. 练习:通过提示词让大模型输出外卖评论中的信息 1. 提示模板 pip install langchain langchain-core langchain-community -i https://pypi.tuna.tsinghua.edu.cn/simple################### 提…

2026/8/22 10:56:14 阅读更多 →
LLM时代软件架构变革:从模型调用到智能体编排的工程实践

LLM时代软件架构变革:从模型调用到智能体编排的工程实践

1. 先搞清楚“LLM时代可扩展软件”到底在说什么 看到这个标题,很多人的第一反应可能是“又要讲大模型API怎么调用了”。但Jeremy Morrell的观点,或者说这个标题真正指向的,是一个更底层、更工程化的问题: 当LLM(大语言…

2026/8/22 10:56:14 阅读更多 →
DayZ离线模组:单机生存沙盒完整上手指南

DayZ离线模组:单机生存沙盒完整上手指南

DayZ离线模组:单机生存沙盒完整上手指南 【免费下载链接】DayZCommunityOfflineMode A community made offline mod for DayZ Standalone 项目地址: https://gitcode.com/gh_mirrors/da/DayZCommunityOfflineMode 📍 项目定位:离线运行…

2026/8/22 10:56:14 阅读更多 →
如何 5 分钟免费跑起来一套 Vue-CRM 客户管理系统

如何 5 分钟免费跑起来一套 Vue-CRM 客户管理系统

如何 5 分钟免费跑起来一套 Vue-CRM 客户管理系统 【免费下载链接】vue-crm Simple reusable CRM built on Vue 2 PWA template and Vuetify UI 项目地址: https://gitcode.com/gh_mirrors/vu/vue-crm Vue-CRM 是一个纯前端的 CRM 系统,管客户、管产品、管订…

2026/8/22 10:56:14 阅读更多 →
ChatGPT驱动AI主播:从文案生成到虚拟人直播的完整实践指南

ChatGPT驱动AI主播:从文案生成到虚拟人直播的完整实践指南

最近在刷短视频时,发现不少抖音小店的主播“画风”变了。他们依然在卖力讲解商品,但仔细看,口型、表情、甚至一些细微的停顿,都透着一股说不出的“数字感”。点开评论区,总能看到“这是AI吧?”、“数字人主…

2026/8/22 10:56:13 阅读更多 →
三步装好|绕过付费墙:Bypass Paywalls Clean 让你免费读完付费文章

三步装好|绕过付费墙:Bypass Paywalls Clean 让你免费读完付费文章

三步装好|绕过付费墙:Bypass Paywalls Clean 让你免费读完付费文章 【免费下载链接】bypass-paywalls-firefox-clean 项目地址: https://gitcode.com/gh_mirrors/by/bypass-paywalls-firefox-clean 刷新闻总被付费墙拦下?Bypass Payw…

2026/8/22 10:55:13 阅读更多 →

日新闻

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

在电子硬件开发领域,PCB(印制电路板)的沉金工艺是提升产品可靠性和焊接质量的关键环节。对于需要高密度互连、长期稳定运行或高频信号传输的板卡,如“黍姐仿通行证”这类可能涉及身份识别、数据交互的硬件项目,选择正确…

2026/8/22 0:00:11 阅读更多 →
电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

这次我们来看一个针对电气考研电路科目的学习规划项目。它不是软件工具,而是一套聚焦于8月份关键节点的备考策略。对于电气工程考研的同学来说,电路分析是专业课的重中之重,也是拉开分差的关键。进入8月,复习进入强化阶段&#xf…

2026/8/22 0:00:11 阅读更多 →
消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

大家好,我是专注于前端开发与AI工具实践的技术博主。在日常使用 Claude Code 等AI编程助手时,你是否也遇到过这样的困扰:生成的代码功能上没问题,但代码风格、组件设计、交互逻辑总透着一股“AI味”——布局单调、样式简陋、交互生…

2026/8/22 0:00:11 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/22 8:09:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/21 16:42:28 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/22 7:31:03 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →