cocos2d-html5 教程 触屏事件

Cocos2d-html5的触屏事件分为单点触屏与多点触屏,由于多点方式用的不多,下面讲解一下单点触屏。
cocos2d-html5的测试例子tests中有ClickAndMoveTest,以此例子进行讲解。
有三种事件:
1
 ccTouchesBegan触屏开始事件;
2
 ccTouchesMoved触屏拖动事件;
3
 ccTouchesEnded触屏结束事件

下面分析代码:
第一:执行初始化的一些操作
var MainLayer = cc.Layer.extend({
ctor:function() {
第二:激活加速度,保证其中的精灵可以加速移动
this.setIsTouchEnabled(false);
第三:创建精灵及场景,对其进行相应的设置

1.var sprite = cc.Sprite.spriteWithFile(s_pPathGrossini);//创建精灵

2.var layer =cc.LayerColor.layerWithColor(cc.ccc4(255, 255,0, 100));

3.       this.addChild(layer, -1);

4.       this.addChild(sprite, 0,kTagSprite);

5.      sprite.setPosition(cc.PointMake(20, 150));

6.      sprite.runAction(cc.JumpTo.actionWithDuration(4, cc.PointMake(300, 48),100,4));

7.       var fadeIn =cc.FadeIn.actionWithDuration(1);

8.       var fadeOut =cc.FadeOut.actionWithDuration(1);

9.       var forever =cc.RepeatForever.actionWithAction(cc.Sequence.actions(fadeIn,fadeOut));

10.       layer.runAction(forever);

第四:在对应的layer里面加入一个ccTouchesEnded事件执行对应的函数操作。

1.ccTouchesEnded:function (pTouches, pEvent){}

不难找到其中的xy坐标,我们的例子中是这样找坐标的:

1.if (pTouches.length <= 0)

2.          return;

3.

4.       var touch = pTouches[0];

5.       var location =touch.locationInView(touch.view());

6.       //var convertedLocation=cc.Director.sharedDirector().convertToGL(location);

7.       var sprite =this.getChildByTag(kTagSprite);

8.       sprite.stopAllActions();

9.      sprite.runAction(cc.MoveTo.actionWithDuration(1,cc.PointMake(location.x,location.y)));

当鼠标点击结束的时候就会执行此方法里的对应方法,会执行上面红色字体的代码,移动到对应坐标。


你可能感兴趣的:(html,cocos2d,触摸)