恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

BeeEngine 2.9插件在这里从BeeLocale开始

  • 首页
  • 资讯中心
  • /
  • BeeEngine 2.9插件在这里从BeeLocale开始

相关资讯

插件加载失败?一文拆解plugins报错机制与排查实战 2026/10/4 4:18:32
谁是性价比之王?8款AI论文平台综合榜,毕业论文轻松搞定! 2026/10/4 4:18:32
国内高校毕业生最爱的AI论文写作软件有哪些? 2026/10/4 4:18:32

最新资讯

CPG控制网络入门:从振荡器到四足机器人实时步态生成
YOLOv5车牌检测与OCR识别两段式架构实战指南
C/C++ 内存管理详解:从内存分布到 new/delete 底层原理
动力总成悬置解耦率计算:MATLAB与Adams仿真方法对比与实操指南
VDI云桌面选型与实施:从远程协议、存储规划到登录风暴避坑指南
STM32F103C8T6+ESP8266嵌入式WiFi控制实战指南

今日推荐

MR25H40CDF + PIC18F65K40:工业记录仪高可靠存储实战
基于STM32的数控恒压恒流电源设计:从硬件到PID调参全解析
LT9211 MIPI重定时器原理与双路扇出实战指南

本周热门

MR25H40CDF + PIC18F65K40:工业记录仪高可靠存储实战
基于STM32的数控恒压恒流电源设计:从硬件到PID调参全解析
LT9211 MIPI重定时器原理与双路扇出实战指南

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

BeeEngine 2.9插件在这里从BeeLocale开始

发布时间:2026/10/4 4:18:32
BeeEngine 2.9插件在这里从BeeLocale开始 从…开始v2.9.0BeeEngine支持插件。引擎保持“盲目”:它不导入或了解任何插件。每个插件都用attach(engine)和删除自己detach().第一个官方插件是BeeLocale:让你的画布游戏多语言化的小帮手。npm install beeengine2.9.01.问题是:硬编码文本// ❌ Before: to translate the game you have to hunt every string in your codectx.fillText(Score: ’ score, 20, 30);ctx.fillText(‘Game Over’, 300, 200);ctx.fillText(‘Press SPACE to restart’, 260, 240);2.解决方案:BeeLocaleimport { BeeEngine } from ‘beeengine’;import { BeeLocale } from ‘beeengine/plugins’;const canvas document.getElementById(‘game’);const engine new BeeEngine(canvas, 800, 600);// All translations in one placeconst locale new BeeLocale({language: ‘it’, // active languagefallback: ‘en’, // backup languagestrings: {en: {score: ‘Score’,gameover: ‘Game Over’,restart: ‘Press SPACE to restart’},it: {score: ‘Punteggio’,gameover: ‘Hai perso!’,restart: ‘Premi SPAZIO per ricominciare’}}});// The plugin registers itself in the engine as ‘locale’locale.attach(engine);3.在你画文字的任何地方使用它// ✅ After: only keys in your codectx.fillText(locale.t(‘score’) : ’ score, 20, 30);ctx.fillText(locale.t(‘gameover’), 300, 200);ctx.fillText(locale.t(‘restart’), 260, 240);get(key)和…完全一样t(key)如果你喜欢这个名字:locale.get(‘gameover’); // “Hai perso!”你也可以在游戏的任何地方从引擎中抓取它:const loc engine.plugin(‘locale’);loc.t(‘score’); // “Punteggio”4.即时切换语言document.getElementById(‘btn-en’).onclick () locale.setLanguage(‘en’);document.getElementById(‘btn-it’).onclick () locale.setLanguage(‘it’);// Or automatically, from the browser languagelocale.setLanguage(navigator.language.slice(0, 2)); // “it”, “en”, “fr”…下一帧已经用新语言绘制了文本。5.Fallback:从不为空字符串BeeLocale按以下顺序查找一个键:主动语言 (it)后备语言 (en)钥匙本身左侧可见const locale new BeeLocale({language: ‘fr’,fallback: ‘en’,strings: {en: { score: ‘Score’, lives: ‘Lives’ },fr: { score: ‘Score’ } // “lives” is missing in French}});locale.t(‘score’); // “Score” → found in Frenchlocale.t(‘lives’); // “Lives” → missing in French, falls back to Englishlocale.t(‘bonus’); // “bonus” → missing everywhere, shows the key丢失的翻译会立即出现在屏幕上https://www.iissbbs.com而不是无声无息地消失。空字符串(‘’)也算失踪。6.分离插件locale.detach();engine.plugin(‘locale’); // null引擎盖下:插件合同每个插件只需要两个方法:attach(engine)和detach().class MyPlugin {attach(engine) {this.engine engine;engine.registerPlugin(‘my-plugin’, this);return this;}detach() { if (this.engine) this.engine.unregisterPlugin(my-plugin); this.engine null; return this; }}插件不能呼叫engine.loop()覆盖update/render或者修补主循环。如果它需要每帧运行一些东西它使用onTick它返回一个关闭挂钩的函数:class FrameCounter {attach(engine) {this.engine engine;this.frames 0;engine.registerPlugin(‘frames’, this);this.off engine.onTick(() { this.frames; });return this;}detach() { if (this.off) this.off(); // always turn the hook off if (this.engine) this.engine.unregisterPlugin(frames); this.engine null; return this; }}BeeLocale不使用onTick一点也不:它只在你打电话的时候起作用t()所以每帧不用花钱。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号