Cocos2d带给我的灵感
来源:互联网 发布:java每5个数输出一行 编辑:程序博客网 时间:2024/05/17 06:56
最近因为一点游戏灵感就又到Cocos官网想看看Cocos2d-js的更新情况,然后发现了官网又出了新的游戏开发工具Cocos creator。 看了一下介绍发现是使用cocos2d-js来开发便觉得很激动。马上就下载来尝试并学习了基本用法。
关于使用感受
这个开发工具给我最大的冲击就是组件化,将所有功能性的东西做成组件给节点使用,拼装好的节点还可以作为模板使用。 是一种结构性很强的开发方式,有非常强的重用性。
不过可惜的是在使用时还是有一些Bug存在,体验并不是很完美。不过就凭借这种合适我的开发模式就足以让我对其心动。
一些灵感
使用了一段时间之后就萌生了将这种模式运用于前端的想法,虽然这在很多时候并没有太大的便捷性。 在我之前的lcg.js框架中,使用的是自定义标签进行功能封装,就好像函数一样来将功能组件化。 可是各个功能不能很自由的组合,如果是一些飞冲突性功能的话应该可以将多个功能自由的绑定在相同的标签上。 现在有一些基本的构思并开发了一个基本的功能模型:
lcg.addPart("clear-text",{
init:function(){
var list = this.dom.childNodes;
for(var i = list.length-1;i >= 0;i--){
if(list[i].nodeName == "#text")
this.dom.removeChild(list[i]);
}
}
});
以上是暂时设计的一种部件的模型,完成的功能是清除节点中的文本子节点。可以防止一些布局中有麻烦的空隙。 通过将各种各样的功能放在一个json中,让各个节点可以自由组合功能。下面也是一种部件定义。
lcg.addPart("base-header",{
args:{
width:1000,
dir:"top",
"margin-h":0,
"margin-v":0
},
init:function(){
var item = this.dom.querySelector("*");
if(item)
item.style["margin-left"] = "calc(50% - "+this["width"]/2+"px)";
lcg.part(this.dom,"loc-float",this.args);
}
});
上面是编写的一个基本的顶部栏的功能定义,args是该部件需要的参数及其初值。 初始化时通过第一个节点的margin-left来移动容器的内容,使得其内容如同指定宽度居中。 当然,这种用法需要CSS3的支持,小朋友们不要学。然后通过js来为dom添加另一个部件, 部件的功能可以通过其他部件的功能来完成,这样也会更加结构化。
下面是在HTML中对部件的使用
<div style="background-color:#ccc;"
parts="base-header:{'margin-v':60,'margin-h':50,width:900};
scrool-hide:{min:200,rotate:450,time:500};
clear-text">
<a>aaaa</a>
<a>vvvv</a>
<a>bbbb</a>
</div>
如上,通过给标签设置一个parts属性来引用,内部类似style那样填多个参数,好在html属性可以换行,整个编码结构比较整齐。 上面的例子中标签使用了三个部件,并且base-header部件也成功引入了loc-float部件的功能。基本的逻辑完成了, 再进行一些完善就会将该内容更新到框架中。
一些遗憾
其实在最开始的构思当中是想将这样的思想主要运用到样式当中去的,可是在开发的过程中发现实际上CSS的功能和效率已经非常好了。 最重要的一点是通过行内样式无法使用CSS中的选择器,这样如同伪类、层级关系等就完全只能通过JS控制。 这样不管是对开发还是对执行效率都是不利的。
本文的地址为 : http://evillcg.com/blog/item/1462702678/
- Cocos2d带给我的灵感
- 分享30个带给你灵感的书法作品
- 足球带给我的回忆
- 丁磊带给我的
- ntldr带给我的烦恼
- 编程带给我的习惯
- 项目带给我的成长
- 实习带给我的东西
- BUG,带给我的思考
- 25个带给你灵感的基于文字的创新Logo设计
- 带给你设计灵感的30个超棒的暗色系网站设计
- 带给你灵感的20个漂亮的单页网站设计作品
- 带给你灵感的20个漂亮的单页网站设计作品
- 45+可爱的大树壁纸 – 带给你无限的自然灵感 【欣赏与收藏】
- 带给您灵感的25个最新鲜的 HTML5 网站
- 22个带给你灵感的网页联系表单设计案例
- 最佳45个带给你灵感的 HTML5 网站设计作品
- 分享25个带给你设计灵感的超棒音乐网站
- Canvas的rotate方法
- java 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- iOS APNS 客户端实现流程与代码(附详细说明)
- 初见CentOS
- 问题处理记录: clang: error: linker command failed with exit code 1 (use -v to see invocation)
- Cocos2d带给我的灵感
- Makefile 使用总结
- Scala的ClassTag
- B族树详解(二叉搜索树、B-树、B+树、B*树)
- 方便的弹出视图,可随意定义箭头方向,自动计算位置
- 堆排序
- 淡入淡出
- 蓝牙5新时代来临,或搭载iphone7,蓝牙新时代
- 栈的应用之数制转换