喵星战争(二):主角登场
来源:互联网 发布:linux wget命令 编辑:程序博客网 时间:2024/05/16 06:58
主角虽然是只小猫,但为了体现动画的效果,将其分为四部分:主体、左手、右手和尾巴。其中主体部分的动画由三张图片构成,三张的明暗不同,在连续播放的时候就有了闪动效果;小猫向不同的方向移动手臂会有“上扬”的动作,这个效果通过图片的垂直镜像获得;尾巴部分通过旋转动作让它如同座钟摆一样左右摆动。由此,一个带有动画的主角就构造成功了,现在我们就按照上述描述构造主角小猫的类定义文件"GameObjHero"如下:
#ifndef _GAME_OBJ_HERO_H_#endif _GAME_OBJ_HERO_H_#include "cocos2d.h"using namespace cocos2d;class GameObjHero:public CCNode , public CCTargetedTouchDelegate{public:CCSprite* lefthand;//左手CCSprite* righthand;//右手CCPoint offset;//触摸偏移位置bool iscontrol;//是否在控制主角GameObjHero(void);virtual ~GameObjHero(void);void releasebullet();//释放子弹CCRect rect();virtual void onEnter();virtual void onExit();//触摸相关bool containsTouchLocation(CCTouch* touch);virtual bool ccTouchBegan(CCTouch* touch ,CCEvent* event);virtual bool ccTouchMoved(CCTouch* touch ,CCEvent* event);virtual bool ccTouchEnded(CCTouch* touch ,CCEvent* event);virtual void touchDelegateRetain();virtual void touchDelegateRelease();};#endif
知识点:
1.CCTargetedTouchDelegate类:
触摸协议,让主角可以接受用户的触摸信息。
中文官网上是这样解释这个类的:
使用这种类型的委托结果在两个好处:
1>你不需要处理CCSet(CCSet是作者对标准C 模板库(STL)中集合(std::Set)的一次封装,方便使用) ,调度员自动分配他们。你每次回调获得相应的UITouch。
2>ccTouchBegan返回YES,您可以*获取*一个UITouch 。Touches的更新只会发送给相关联的委托。 所以,如果你处理move/ ended/cancelled事件的更新,你可以确定这是要处理的触摸事件。 这可以让你在处理多点触摸时节省很多检查。 (有了TargetedTouchDelegate涉及到target的处理程序的handler,不需要处理其他的Handlders。 )
其类成员函数有如下:
这应该很容易从字面上理解,我就不赘述了。
2.containsTouchLocation:这个函数就看看我们的触摸点是否在sprite中。
3.CCTouch:它封装了触摸点,可以通过locationInView函数返回一个CCPoint。
4.CCEvent:他封装了各种事件,这里是指触摸发生的相应事件。
ps:该文章内容多出自于《Cocos2d-x权威指南》,详情请自行购买查阅。
附上Touch事件机制的详细说明文章:
http://blog.csdn.net/ym19860303/article/details/8477567
- 喵星战争(二):主角登场
- 喵星战争(三):主角小猫的初始化-onEnter()
- 飞机大战之二:主角飞机登场
- 动作游戏Demo(二)主角的控制
- ADO 对象模型之 connection 核心主角闪亮登场!
- 喵星战争(一):游戏简介
- 喵星战争(四):触摸
- 喵星战争(十一):error调试
- 《跑跑跑》(二)——让主角动起来
- 选择人物主角方法二 (通过摄像机的变化)
- 消灭星星(二)让主角动起来
- 反射(二)------Class类登场
- 喵星战争(五):敌人狗博士的实现
- 喵星战争(六):子弹的实现
- 喵星战争(七):游戏分数的实现
- 喵星战争(十):关于界面的实现
- 【cocos2d-x入门实战】微信飞机大战之四:主角的登场和帧动画
- HTML5吃豆豆游戏开发实战(二)主角移动和动画循环设置
- 营销天才指南之内容营销
- 每日一题(63) - 排列与组合
- String类
- IOS之同步请求、异步请求、GET请求、POST请求
- 学java时的一些笔记(2)
- 喵星战争(二):主角登场
- 大型机系统使用规范
- 数据结构学习笔记(1.大O表示法和顺序表)
- [leetcode刷题系列]Longest Consecutive Sequence
- java socket编程
- 这样给女生讲解金融知识
- linux下mysql删除日志文件
- 思路决定出路
- 红外热释电处理芯片BISS0001和热释电元件D204B