• 欢迎来到GeekFaner

    每周更新一篇教程,轻松学习cocos2d-x

    联系我们
  • 又是一个美好的一天

    每天的太阳都是新的,今天要比昨天好

    联系我们
  • 出发!

    开始今天的课程学习,让我们的明天更美好

    联系我们

课程概述

“Cocos2d-X的在塔防游戏里面通过触摸和拖动的方式创建一个炮台”课程概述

在之前的课程中介绍了通过menu实现玩家的交互,而大部分游戏中都是通过触摸和滑屏实现交互,本节课将对这两个事件触发进行讲解

教学视频

课程笔记

Demo解读

触摸事件

cocos2dx3.0之后,触摸事件变化比较大,之前使用的setTouchEnabled和CCTouchesBegan都已经不再使用了。

而是使用创建事件监听器的方法,首先定义一个事件监听器,比如触摸事件监听器EventListenerTouchOneByOne,定义该事件监听的onTouchBegan方法监听TowerDefenseScene layer的onTouchBegan方法,onTouchEnded方法监听TowerDefenseScene layer的onTouchEnded方法,onTouchMoved方法监听TowerDefenseScene layer的onTouchMoved方法,然后将该事件监听器通过addEventListenerWithSceneGraphPriority方法加入TowerDefenseScene layer的getEventDispatcher。

然后重载TowerDefenseScene layer的onTouchBegan、onTouchMoved、onTouchEnded方法,重载的时候需要先在.h文件中声明,然后再重载,比如本次demo中就是在TowerDefenseScene方法中创建一个精灵,然后通过onTouchBegan传入的参数touch的getLocation方法得到触摸的位置,然后根据触摸的位置,将精灵加入TowerDefenseScene layer,然后在TowerDefenseScene方法中根据传入的touch参数得到触摸位置,设置sprite的位置,进行拖动操作,最后在onTouchEnded方法中,实例化一个Animation,然后创建2个SpriteFrame,并将其加入Animation,设置Animation的帧间隔事件和循环次数(-1为无限循环),然后实例化一个动作的子类Animate,将Animation做为参数传入Animate,然后通过sprite的runAction函数执行Animate动作。

联系我们

笔者制作网站的目的,主要是借用自己之前的知识背景(Android App开发和图形学知识),将自己学习笔记拿出来,和大家一起进行交流,毕竟每个人的知识体系不同,有交流才会有提高,所以欢迎大家通过各种方式和我联系。
网址:www.geekfaner.com
youku教学视频:http://i.youku.com/geekfaner
“百度传课”教学视频(高清版_推荐):http://www.chuanke.com/s2588605.html

wangshuo@geekfaner.com