Cocos2d – x学习笔记[3] 动作及其监听、触屏事件
来源:互联网 发布:邪恶少女漫画软件 编辑:程序博客网 时间:2024/05/22 09:04
动作由动作对象CCSprite类通过执行runAction函数,各种动作事件在CCActionInstant.h中有定义。很多事件如CCMoveTo、CCMoveBy这些是一一对应的,尾缀为“To”的是变化到指定的值,尾缀“By”是在x、y方向上执行对应的距离。
CCAction是所有动作类的父类,可以调用其子类动作的create函数去初始化CCAction类的指针。CCAction中还有一些特殊的类,如CCSpawn(将所有动作一起播放)和CCSequence(逐个播放动作),还有CCRepeat(可指定次数)、CCRepeatForever,以及进行动作监听的CCCallFunc(他也是一个动作,同时也是一个回调函数)。CCAction中提供了各种动作,这些动作都能通过精灵类的runAction执行,查看源文件动手敲一敲代码会更好。
Cocos2dx中的触屏事件
//开始、手指按下时
virtual void ccTouchesBegan(CCSet* pTouches,CCEvent* pEvent);
//手指滑动时
virtual void ccTouchesMoved(CCSet* pTouches,CCEvent* pEvent );
//结束、手指松开
virtual void ccTouchesEnded(CCSet* pTouches,CCEvent* pEvent );
//打断、如突然来电
virtual void ccTouchesCancelled(CCSet* pTouches,CCEvent* pEvent );
这些复数形式(touches)的触屏函数,代表触摸的消息传递给各个层。也存在单数形式的函数,他们只针对某个层。
项目中如果需要实现触摸功能就使其继承CCLayer,因为CCLayer继承自 CCTouchDelegate,实际上我们真正去触屏的时候就是对图层的操作。
实现触屏操作前,需要先对场景进行设置,即
Scene -> setTouchEnabled(true);
我在看书时看到这一句:
void HelloWorld::ccTouchesBegan(CCSet* pTouches,CCEvent* pEvent)
{
CCTouch* touch = (CCTouch*)pTouch->anyObject();
CCPoint pos1 = touch->getLocation();
CCPoint pos2 = touch->getLocationInView();
CCPoint pos3 = CCDirector::sharedDirector()->convertToGL(pos);
}
这里涉及到了三种获取触摸坐标的方法。
·touch->getLocation()
获得基于3D的坐标。
·touch->getLocationInView()
获取视图中的坐标,即2D坐标。
·CCDirector::sharedDirector()->convertToGL(pos)
基于cocos2dx的坐标。
CCSet是基于C++中的STL实现的,他的成员函数anyObject返回一个CCObject* ,CCSet类中的函数都维护一个set<CCObject *> *m_pSet、
这是以上代码段运行结果的一部分:
pos1: x = 788.742126 , y = 309.037750
pos2: x = 789.000000 , y = 331.000000
pos3: x = 788.742126 , y = 309.037750
可以看出,不同的方法,转换的结果是不一样的。
我在调试时遇到了语法错误: 标识符“CCSet”的错误,后来发现是忘记引入cocos2d的命名空间。
- Cocos2d – x学习笔记[3] 动作及其监听、触屏事件
- Cocos2d-x学习笔记(3) - 动作
- Cocos2d-x动作学习笔记
- cocos2d-x学习笔记10:动作3:补间动作
- cocos2d-x学习笔记10:动作3:补间动作
- 【cocos2d-x游戏开发】动作事件的监听
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- cocos2d-x学习笔记(7)--动作(Actions)
- cocos2d-x学习笔记-CCAction(动作)
- cocos2d-x学习笔记-CCAction(动作)
- cocos2d-x学习笔记-CCAction(动作)
- cocos2d-x学习笔记(四)动作(Action)
- cocos2d-x学习笔记-CCAction(动作)
- 【Cocos2d-x 3.0学习笔记】动作,动画
- cocos2d-x CCAction动作学习笔记
- 实现图像格式的转换代码 C语言实现 RGB565转BMP图像
- MFC常见函数详解:SetRegistryKey
- Leetcode:Reverse Integer ,整数反转
- WWDC 2014 Session401之Xcode6的新特性层级结构可视化
- 初识Struts2
- Cocos2d – x学习笔记[3] 动作及其监听、触屏事件
- 汇编语言编译时的错误汇总
- NoSQL数据库的分布式算法
- 原创文章
- 关于Python中的变量作用域
- Android sqlite数据库操作通用框架AHibernate(1)
- 4、深入理解Bean
- Cow Exhibition(2184)
- 1067. Sort with Swap(0,*) (25)