2022.06.01
这其实只是一篇庆祝终于能出门的帖子 …
2015
这是一个很早就开始的项目,那个时候还是 cocos2d-html5
的时期。
从 cocos2d-x
来到了网页端,开始接触到了很多有趣的东西。
比较早期的一个尝试:
cocos2d-html5 + node-webkit
使用
node-webkit
将cocos2d-html5
游戏打包成桌面程序,进行跨平台的尝试。
随着从 c++
过渡到 javascript
,开始接触越来越多的前端知识。
那个时候虽然 vue
,react
之类的框架还不火(当然也可能是自己没有关注)。
曾经划过一点时间学习前端三件套 html + css + javascript
,但是可能因为是 cocos
出家,总是无法很好的切换到标准前端的开发模式中。
于是就有了新的尝试,结合 cocos2d-js
和 DOM
元素,进行开发的一个方案 :
cocos2d-js DOM
在
Cocos2d-JS v3.10
中使用HTML
中的元素,以cocos
的编码风格创建浏览器应用。
印象很深刻的是,当时还尝试了:
iPad + Textastic + Github + Firebug + cocos2d-js
的开发环境构建和实际开发的尝试。
接着接触到了 electron
,对于一个多年用 c++
做 MFC
的程序来说,感觉终于找到了一个可以快速制作跨多平台软件的一个解决方案了。
只是因为对三件套掌握水平极菜,在表现层有些无能为力,不过如果能搭配上 cocos2d-js
的话那真是一个非常不错的方案,于是就有了一些尝试:
cocos2d-js DOM Electron
cocos2d-js DOM
和Electron.js
的结合,用于创建本地化的桌面应用。
接着还做了更加深入一点的尝试:
cocos2d-js DOM Electron Editor
Cocos2dJS DOM Electron
的可视化编辑器。
当然所有的方案,除了 cocos2d-js && DOM
的合体之外,都只做了非常粗浅的尝试而已。
后来也都没有了下文。
2020
时间来到了 2020
,自己开始转 Creator
没多长的时间,期间开始尝试插件的编写。
这时候又遇到了过去曾经遇到的问题:
我有亿个好的插件的点子。
一些技术难点我也可以攻克。
但是要我使用三件套,或是一些主流框架vue
/react
,再配合上Creator
的插件框架,最终开发出插件,实在有些困难。所以还是算了 …
当然因为不想太简单的放弃,于是有了下面的挣扎:
就问你6不6 - cocos2dx 入侵 Creator 插件系统 - 0
就问你6不6 - cocos2dx 入侵 Creator 插件系统 - 1
就问你6不6 - cocos2dx 入侵 Creator 插件系统 - 2
就问你6不6 - cocos2dx 入侵 Creator 插件系统 - 3
就问你6不6 - cocos2dx 入侵 Creator 插件系统 - 4
就问你6不6 - cocos2dx 入侵 Creator 插件系统 - 5
就问你6不6 - cocos2d-x 入侵 Creator 插件系统 - 6
ShaderEditor3D Challenge - 3D Plugin Integration
也有了基于 Creator v2.x
的,非常不成熟的 解决方案:
2022
时间来到 2022.03
。上海,开始被闭门不出 …
没有了上下班的时间消耗,空余时间多了,本想写个游戏,但是天天封在家里,写了 60%
开始有点腻了。
于是又想到了开发插件打发打发时间。
去年开发了很多插件,但大多是 cocos2dx
时期积累的移植,而且大都只是组件,也并非纯正的插件。
这次,正巧有时间,正巧又想到了曾经鼓捣过的这些东西,于是想要在 Creator v3.x
里,来搞点事情。
于是便有了文末的连载小说,从 5.1
开始,每天一回,不算今天的,刚好 31
回。
> 2022
本想着是写着玩玩,看看是连载先结束,还是解封先结束。
现在看来,是我赢了 …
项目从单纯的目标出发,现在还在路上,目标也变得越来越不单纯。
现在,插件的功能和目标是这样的(当然大部分还只是吹牛X ……):
嫌太长的,可以只看亿句话总结:
只要你会 CocosCreator 就可以来开发插件了
折腾人的各种扩展配置全部已经帮你可视化了
五花八门的接口封装成 CocosCreator 风格了
一直眼馋的别人家的组件三方组件也能让你用了
- 基础 / General
- 支持使用
CocosCreator v3.x
直接开发插件 - 支持使用
CocosCreator v3.x
中的所有控件 - 支持混用
CocosCreator v3.x
官方插件UI组件库
- 支持混用
npm
中部分组件库
(bootstrap
,element-ui
,font awesome
,interact.js
… )
- 支持使用
- 插件 / Extension
- 一键生成插件模板
- 一键发布
- 一键编译
- 一键测试
- 支持
float / dock
- 纯净,无入侵式修改
- 极简工作流
- 集成
test-case
- 可视化 / Visualization
- 基础信息
- 多面板管理
- 自定义菜单扩展
- 右击菜单扩展
- 扩展拖入识别扩展
- 场景脚本管理
- 资源数据库扩展
- 属性检查器面板扩展
- SSRElement / SSRElementEvent / SSRProperty / SSRCSS / SSRClass / SSRSelector
- 提供
CocosCreator
风格,组件化DOM
Property
CSS
- 提供
CocosCreator
风格,事件监听机制 - 提供
DOM
风格,事件监听机制 - 支持
CocosCreator
风格的动态创建,使用
- 提供
- SSRElement
- 单一类型
DOM
元素 - 组合类型
DOM
元素 - 自定义
DOM
元素 - 自定义
DOM
元素内容交互,访问,事件 - Node Related / Node Independent
- Easy z-order
- 单一类型
>> 2022
虽说整个项目的立项源点,是避开前端知识,开发插件。
但说实话这不是什么好的出发点。
毕竟正经的学一下前端开发的主流只是还是很不错的选择,那天也许要转应用开发的话,就可以比较丝滑的过渡了。
当然,正因为这个项目有着不正经的初衷,整个过程,确实学到很多不同寻常的知识。
感兴趣的朋友可以戳开文章看看 …
虽然想要实现上面列出的这些梦想是很难的,甚至有的是不可能的,但是连载还在继续,也许呢,就在这里插个 吧 …
SSRExtensionKit in Progress
SSRExtensionKit 0x01 起源 / Roots
SSRExtensionKit 0x02 插件细分 / Extension Segmentation
SSRExtensionKit 0x03 插件技能 / Extension Skills
SSRExtensionKit 0x04 另一个可能 / Yet Another Way
SSRExtensionKit 0x05 可行性分析 / Feasibility Analysis
SSRExtensionKit 0x06 你好插件 / Hello Extension
SSRExtensionKit 0x07 CSS 加载问题 / CSS Load Issue
SSRExtensionKit 0x08 JS 加载问题 / JS Load Issue
SSRExtensionKit 0x09 ImportMap 问题 / ImportMap Issue
SSRExtensionKit 0x0A DOM 初始化问题 / DOM Init Issue
SSRExtensionKit 0x0B 第一阶段打卡 / Phase.1 Complete
SSRExtensionKit 0x0C 简化 / Simplify
SSRExtensionKit 0x0D 缩放问题 / Resize Issue
SSRExtensionKit 0x0E DOM 缩放问题 / DOM Resize Issue
SSRExtensionKit 0x0F 画布缩放问题 / Canvas Resize Issue
SSRExtensionKit 0x10 停靠缩放 / Resize in Dock
SSRExtensionKit 0x11 停靠 vs 浮动 / Dock vs Float
SSRExtensionKit 0x12 状态切换调查 / State Switch Research
SSRExtensionKit 0x13 状态切换解决方案 / State Switch Solution
SSRExtensionKit 0x14 插件模板 / Extension Template
SSRExtensionKit 0x15 零入侵 / Zero Pollution
SSRExtensionKit 0x16 插件面板 / Extension Panel
SSRExtensionKit 0x17 我的模板 / My Template
SSRExtensionKit 0x18 我的工作流程 / My Work Flow
SSRExtensionKit 0x19 自定义构建问题 / Custom Build Issue
SSRExtensionKit 0x1A 手术开始 / Operation Start
SSRExtensionKit 0x1B 手术完成 / Operation Complete
SSRExtensionKit 0x1C 继续向前 / The Next Step
SSRExtensionKit 0x1D UI 交互初试 / UI Interactive Trial
SSRExtensionKit 0x1E UI 交互封装 / UI Interactive Wrapper
SSRExtensionKit 0x1F NPM 插件 / NPM Plugins