分享:cocos2d-js 3.0 增强库

https://github.com/akira-cn/smart-x

写了一些小工具,改进了一下cocos2d-js 3.0原生的api,主要提供动画api、事件机制和部分UI组件的改进

文档: http://smart-x.akira-cn.gitpress.org/
测试用例:http://akira-cn.github.io/smart-x/sample/

:7: 不错不错,可以借鉴

pageview不错

很赞额~支持下~~~~

跪添,很实在的好东西!!:6:

只能登录Github给你一个贊!手工点的!:6::6:

这个库最后打包到安卓和iOS都没有什么影响吗?:14:

应该是没有影响的,新游戏正在用这个做。
有什么bug可以报给我,我来修~

跪谢大神,正在拿这个试点小游戏:6:

cc.createSprite(sprite, attrs)

这个方法能否像cc.LabelBMFont.create一样创建用fnt的文字呢?

templates里,this.sprite的sprite没有在前面
sprite:null,
就可以直接用了,这是为什么呀?:6:

大神,发现小问题了,能留个Q吗?

sprite.moveBy(1, cc.p(0, 20)).repeatForever().act();
黑屏了,但把repeatForever换成repeat(1)就能动了……

我跟着文档,试着在Layer的ctor里写了
var movemovemove = cc.AnimationFragement.create().moveBy(0.1 , cc.p(0, 15));
this.retainTarget(movemovemove.getAction());

然后
this.delegate(something, ‘click’, function(){
this.sprite.play(movemovemove).then(function() {}).act();
});

点击后,动画没有播放,是怎么回事呢,
单独把
this.sprite.moveBy(0.1 , cc.p(0, 15)).act();
写出来是可以动的,哪里出错了吗?

SmartTestCase里面,
那个Animation & Actions,一进去屏幕是全红的,呃!

浏览器是Chrome Dev 37:10:


this._super();

var a1 = cc.MoveBy.create(1, cc.p(150, 0));

var action1 = cc.Sequence.create(cc.Place.create(cc.p(60, 60)), a1).repeat(3);
var action2 = cc.Sequence.create( a1.clone(), a1.reverse(), cc.DelayTime.create(0.25)).repeatForever();

this._kathia.runAction(action1);
this._tamara.runAction(action2);

这种在增强库的API下该怎么写?百思不得其解啊:6::6:

写成
cc.AnimationFragement.create().moveBy(4, cc.p(0, 50));
然后act,执行了,
如果写成
cc.AnimationFragement.create().moveBy(4, cc.p(0, 50)).Place(cc.p(50,50));
就黑屏了

10楼 不明白什么问题?

11楼 sprite.moveBy(1, cc.p(0, 20)).repeat().act();
没有repeatForever了,只有repeat,不传参数的话默认是 forever

12楼 不能用this.sprite,因为delegate的handler的“this”不是layer,用闭包特性

var self = this;
this.delegate(something, ‘click’, function(){
self.sprite.play(movemovemove).then(function() {}).act();
});

我考虑下是否把delegate的handler的this给bind成当前layer…

13楼 例子里面设置了background
this.attr(‘background’, ‘#f00’);
去掉这个红色背景就消失

14楼
可以用 AnimationFragement,不过这种复杂的,用原生api吧

另外,Place、Hide、Show、FlipX、FlipY 等瞬时动作在 animate 增强里面没有
可以用 then + sprite.attr 来写

:14: 谢谢!

then + sprite.attr
能不能举个小小的例子呢:904:

另外,似乎this.delegate(something, ‘click’, function());
里的eventType好像只支持了click?

这个库或者原生方法里,持续的按住或持续的触摸应该是什么方法?:9::9: