喵星战争(二):主角登场

      主角虽然是只小猫,但为了体现动画的效果,将其分为四部分:主体、左手、右手和尾巴。其中主体部分的动画由三张图片构成,三张的明暗不同,在连续播放的时候就有了闪动效果;小猫向不同的方向移动手臂会有“上扬”的动作,这个效果通过图片的垂直镜像获得;尾巴部分通过旋转动作让它如同座钟摆一样左右摆动。由此,一个带有动画的主角就构造成功了,现在我们就按照上述描述构造主角小猫的类定义文件"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。 )

其类成员函数有如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值