ClickAndMove

1.  加入触摸以及鼠标移动监听

if('touches' in cc.sys.capabilities) {
    cc.eventManager.addListener(cc.EventListener.create({
    event: cc.EventListener.TOUCH_ALL_AT_ONCE,
    onTouchesEnded:function(touches, event) {
        if(touches.length <= 0)
            return;
        event.getCurrentTarget().moveSprite(touches[0].getLocation());
    }

}),this);
}
 else if ('mouse' in cc.sys.capabilities )
            cc.eventManager.addListener({
                event: cc.EventListener.MOUSE,
                onMouseUp: function (event) {
                    event.getCurrentTarget().moveSprite(event.getLocation());
                }
            }, this);

2. 除了可以给精灵加动作,还可以给层加入动作

var sprite = cc.Sprite.create(s_pathGrossini);

        var layer = cc.LayerColor.create(cc.color(255, 255, 0, 100));
        this.addChild(layer, -1);

        this.addChild(sprite, 0, TAG_SPRITE);
        sprite.x = 20;
	    sprite.y = 150;

        sprite.runAction(cc.JumpTo.create(4, cc.p(300, 48), 100, 4));

  var fadeIn = cc.FadeIn.create(1);
        var fadeOut = cc.FadeOut.create(1);
        var forever = cc.RepeatForever.create(cc.Sequence.create(fadeIn, fadeOut));
        layer.runAction(forever);
3. 主要函数moveSprite,首先根据tab获得对象,停止对象所有动作,然后加入新动作

var sprite = this.getChildByTag(TAG_SPRITE);
        sprite.stopAllActions();
        sprite.runAction(cc.MoveTo.create(1, position));
        var o = position.x - sprite.x;
        var a = position.y - sprite.y;
        var at = Math.atan(o / a) * 57.29577951;  // radians to degrees

        if (a < 0) {
            if (o < 0)
                at = 180 + Math.abs(at);
            else
                at = 180 - Math.abs(at);
        }

        sprite.runAction(cc.RotateTo.create(1, at));





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值