当前位置: 首页 > news >正文

Flutter 中使用 Flame + flame_forge2d 的注意事项清单

1) 版本与依赖

  • 严格匹配版本flameflame_forge2d 必须是官方兼容对。去掉 ^,使用精确版本号并把 pubspec.lock 入库。
  • 升级时同时升级两者;若不兼容,优先退回到上一组“已验证对”。
  • 避免长期使用 dependency_overrides 指向未发布分支;仅应急用。

2) 坐标系与单位(最容易混淆)

  • Flame 渲染/输入是像素;Forge2D 物理是
  • Forge2DGame.zoom == pixelsPerMeter(PPM)。常用 zoom=100 → 1m=100px。
  • 输入转换:camera.viewfinder.screenToWorld(px) / zoom → 米;渲染反过来用 worldToScreen(m*zoom)
  • 规则:物理相关(位置、速度、半径、力)一律用“米”;只在渲染与输入边界做换算。

3) 相机与锚点

  • 使用 Flame 的 CameraComponent / viewfinder 控制视口,不要通过改 zoom 来做适配。
  • 精准对齐:渲染时保证 anchor=center,图像尺寸用 半径(米)*2*zoom
  • 相机平移/缩放后,务必用 viewfinder 的转换函数 处理触摸坐标。

4) 时间步进与稳定性

  • Forge2DGame 已内置固定步长(60Hz)。不要在 update 中再手写 world.step() 造成重复步进。
  • 需要慢动作/加速回放时,改变渲染节奏或模拟次数,不要改物理 dt 的大小幅度。
  • 物理发散/抖动时,优先降低 restitution(e)、提高 linearDamping/ angularDamping、增大迭代次数(速度 8–10、位置 3–5)。

5) 刚体与形状

  • 圆体:用 CircleShape,性能与稳定性最友好。
  • 地形:用 ChainShape(多段线/样条采样),点不要过密(建议采样步长 0.05–0.2m)。
  • 大物体可能穿透:设置 body.bullet = true 或提高速度迭代数;必要时限制最大速度。
  • 切勿频繁 create/destroy Body:能复用就用对象池,或延迟销毁到帧末。

http://www.dtcms.com/a/528200.html

相关文章:

  • SpringBoot教程(安装篇):Elasticsearch及可视化工具安装(Windows环境)
  • 华为OD机试双机位A卷 - 商品推荐多属性排序 (C++ Python JAVA JS GO)
  • 延安市违法建设举报网站深圳宝安网站推广
  • Mac Nginx安装、启动、简单命令(苍穹外卖、黑马点评前端环境搭建)
  • 新乡哪有做网站的北京seo执行
  • GitHub等平台形成的开源文化正在重塑林语堂
  • 鸿蒙分布式软总线通信协议详解
  • 建立网站的技术做谷歌seo要发大量文章吗
  • 第7章 muduo编程示例(5)
  • 微软输入法词库拓展600w(win11)
  • 解决虚拟机安装的Ubuntu20.04.6 LTS 不能复制粘贴问题
  • Linux中系统调用sys_access函数的实现
  • 微波加热内部温度场的电磁−热耦合模拟
  • 2024ICPC上海
  • 专业制作网站多少钱成品网页网站
  • Linux(LDAP服务)
  • 安卓旧机变服务器,KSWEB部署Typecho博客并实现远程访问:cpolar内网穿透实验室第645个成功挑战
  • 无需云服务的家庭相册:OpenHarmony 上的 Rust 实践
  • OpenHarmony后台服务开发指南:ServiceAbility与ServiceExtensionAbility全解析
  • ARM Cortex-M 向量表详解
  • 网站优化免费软件游戏推广话术
  • wxPython下载和安装教程(附安装包)
  • IOT项目——电源入门系列-第三章
  • 情绪合集 | 以往高分文献分析,揭示情绪研究热点
  • Vue中data和props数据代理的区别
  • C++容器queue
  • 运转灵活小企业网站建设wordpress文章布局
  • 网站网页框架构架图怎么做大理网站开发
  • Cliproxy与Adspower指纹浏览器:跨境业务安全与效率的双重引擎
  • 在线观看免费网站网址开源之家