lufy's legend

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 9389|回复: 1
打印 上一主题 下一主题

对lufylegend 2.0的一些意见

[复制链接]

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

楼主
发表于 2014-4-5 22:53:04 |显示全部楼层
一,代码规范化
目前lufylegend中的代码有的地方需要规范一点。比如说一些不提供使用的成员函数或属性可以在函数或属性前加一个_ 。
这里我也早就想改了,2.0还得需要很长时间,所以可能会在1.8.9中或者1.8.10(如果发布这个版本的话)调整。

二,事件规范化
在LMedia,LLoader等类中,加事件的函数addEventListener本应该可以不用重新写的。直接用dispatchEvent()不更好?还有就是触发事件传的event参数,这个参数里的属性太多了,如果能统一一下不更好?


这个在2.0中应该会调整一下

三,更新Box2d
目前引擎的box2d封装感觉不太方便,我觉得一个LSprite应该是加到一个body上,而不是一个body加到LSprite上。所以,我希望的用法是这样的(LBoxBody是一个假设的类,用来创建矩形刚体):
var box = new LBoxBody(100,100,true);
addChild(box);
复制代码
要设置body上的内容,可以这样:
box.setSprite(sprite,true); //第一个参数为sprite对象,第二个为是否根据刚体形状自动裁剪内容
复制代码
这样一来,如果把LBoxBody对象加到一个另一个LSprite上,坐标就会根据父LSprite更改。当然,这么做了以后,debug模式下就不能用box2d原始方法了,而是根据刚体形状,使用lufylegend画一个。


之所以将刚体加到LSprite上是有原因的,因为box2d是外部引擎,对刚体进行扩展就不那么方便了,而相反LSprite我可以任意调整,很方便。

四,鼠标事件
目前的事件是:父LSprite被点击触发事件,子LSprite不触发事件。而我觉得应该是子LSprite触发事件的同时也触发父LSprite事件。但子LSprite其中一个触发事件,其他子LSprite不触发(因为被遮挡住了)。换言之,给父LSprite加事件,凡是子LSprite被点击,都触发到父LSprite事件,但子LSprite的事件是只能触发一个的。
另外,话说addEventListener加n个事件却只能触发一个,这样不科学吧……


触发多个事件的问题会在1.8.9中调整,其他的会在后面的版本中优化

五,拓展碰撞检测
这个之前谈过很多次了,就不再啰嗦了。


1.8.9会增加一个多边形碰撞检测,其他的几个碰撞的调整确实得等2.0以后了。

多谢建议


不回答与技术和引擎不相关的问题
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

沙发
发表于 2014-4-7 23:28:00 |显示全部楼层
yorhomwang 发表于 2014-4-6 20:12
box2dweb部分感觉确实要整改一下。比如说创建后的一个刚体,x、y坐标是指中心点,而非左上方那一点,和lu ...

其实封装之后,使用起来肯定是简单了,但是难免会有些限制。
这些等有时间的时候,会进一步调整一下的
box2d的效率真不怎么样,我都想自己写个功能简单点儿的物理引擎了...
不回答与技术和引擎不相关的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

防止垃圾广告,请填写任意字符

Archiver|lufy's legend

GMT+8, 2024-5-6 02:49 , Processed in 0.055115 second(s), 19 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部