博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cocos2d-x学习之---自定义图标(带触摸事件)
阅读量:6957 次
发布时间:2019-06-27

本文共 1395 字,大约阅读时间需要 4 分钟。

可能说自定义图标有点不太合适吧,但是我不好怎么形容这个。这个东西是这两天在看别人的代码中了解到的,主要的意思是指,游戏中某个图标,其本身带有触摸功能:即这个类继承了CCSprite和CCTouchDelegate。这样在游戏开发过程中,将这个类的对象(某个图标)放到某个场景中,当用户进行触摸操作的时候,图标能响应触摸操作,这样就能方便的在场景有多个图标的时候对触摸事件进行合理的管理。嗯,说的有点模糊,本身不是计算机专业出身,专业术语描述性不强。

大概的利用一个简单的例子来说说吧~

首先

//图标代理class ItemDelegate{virtual bool ItemTouchBegan(CCPoint pTouche,CCEvent pEvent);//还可以加上touchMove touchEnd touchCancel}
//自定义图标.hclass Item: public CCSprite,public CCTouchDelegate{virtual bool ccTouchBegan(CCTouch* pTouch,CCEvent* pEvent);//move end cancelItemDelegate* itemDelegate;}//.cppbool Item::ccTouchBegan(CCTouch* pTouch,CCEvent* pEvent){//在这里调用代理itemDelegate->ItemTouchBegan(pTouch,pEvent);}
在这里写自定义图标的类代码,再写一个代理,图标的触摸事件会调用代理执行,即如代码中所示,Item的触摸事件中调用代理的方法,可以这样说么:这样就给图标绑定了一种属性?

然后

//一个场景类.hclass someScene: public ItemDelegate{//继承自代理,因而有代理的方法//在这里将自定义的图标类对象作为这个场景的成员//如果要实现触摸这个图标然后响应某个操作,就重写代理中的相关方法virtual bool ItemTouchBegan(CCTouch* pTouch,CCEvent* pEvent);Item* item;}//.cppbool ItemTouchBegan(CCTouch* pTouch,CCEvent* pEvent){//在这里写当图标开始被触摸的响应操作CCLog("touchBegan");}

这样写估计也就我才看得懂了,留着给自己备用吧~因为学C++都没学多久,又不是计算机专业出身的,所以有些东西别人看起来挺简单的,而我却觉得挺有意思,就如这个代理,在C++中,抄段百度的:
代理就是定义一个行为和某类(class)的对象相似,而又潜在地表示了所有继承自该类的对象的东西,我们把这种类的对象叫做
代理(surrogate).
该方法的关键之处在于“用类来表示概念”。通过使用这种方法,既能使我们避免显示地处理内存分配,又能保持类在运行时绑定的属性。之前对这个都不是很清楚,现在算是学到了。

其实这种方法在cocos2dx开发中可以用到的地方有很多(我是这么觉得的),自定义某个方法,写个代理,将操作独立出来。。。

转载于:https://www.cnblogs.com/zhong-dev/p/4044606.html

你可能感兴趣的文章
[CALayer release]: message sent to deallocated instance iOS内存过度释放问题
查看>>
WPF界面设计技巧(4)—自定义列表项样式
查看>>
git push的时候每次都要输入用户名和密码的问题解决
查看>>
hiho_1138_island_travel
查看>>
love2d教程13--图形界面
查看>>
POJ 1276 Cash Machine
查看>>
C语言中 struct成员变量顺序对内存的占用
查看>>
POJ1291-并查集/dfs
查看>>
移动办公首选!电商热卖轻薄本高低该怎么选?
查看>>
[译] RNN 循环神经网络系列 1:基本 RNN 与 CHAR-RNN
查看>>
Android技能树 — PopupWindow小结
查看>>
如何在create-react-app项目中使用vw实现手淘vw移动端适配布局
查看>>
Wormhole燃烧地址到底有多安全
查看>>
Web探索之旅 | 第三部分第三课:协议
查看>>
20个优秀手机界面扁平化设计,让你一秒看懂扁平化
查看>>
从百度的PPT文化看程序员晋升
查看>>
Python测试登录功能
查看>>
babel插件入门-AST(抽象语法树)
查看>>
ubuntu 16.04下docker的安装
查看>>
web页面渲染(一)
查看>>