【cocos2d-x知识点】-- 遥感

创建一个遥感类,继承于节点,挂载相应图片(遥杆背景和遥感)。
在Joystick.h中:

class CJoystick : public Node
{
   
public:
	enum TextureType
	{
   
		LOCAL,  //单图
		PLIST   //合图
	};
public:
	CJoystick();
	~CJoystick();

	//创建一个带参数的create接口(遥感背景,遥感,图片类型),用于传图片
	static CJoystick* create(const string& strBg, string strHandle, TextureType nType = TextureType::LOCAL);
	bool initWithData(const string& strBg, string strHandle, TextureType nType = TextureType::LOCAL);

	//三个触摸状态
	bool onTouchBegan(Touch* pTouch, Event* pEvent);
	void onTouchMoved(Touch* pTouch, Event* pEvent);
	void onTouchEnded(Touch* pTouch, Event* pEvent);

	//判断一个点是否在遥感圆内(圆心、点、半径)
	bool isInCircle(const Vec2& center, const Vec2& pos, float fRadius);

	CC_SYNTHESIZE(Sprite*, m_pBackground, Background);  //遥感背景图
	CC_SYNTHESIZE(Sprite*, m_pHandle, Handle);  //遥感
	CC_SYNTHESIZE(float, m_fRadius, Radius);  //遥感半径
	CC_SYNTHESIZE_READONLY(Vec2, m_vDir, Dir);
	CREATE_FUNC(CJoystick);
	
private:
	//添加触摸事件
	void _addTouchEvent();
};

在Joystick.cpp中:
由于遥感是通过玩家的触摸来操控,注册触摸事件_addTouchEvent(三部曲),分别编写触摸点击时、长按时、弹起时的代码,实现不同的操控效果。

CJoystick* CJoystick::create(const string& strBg, string strHandle, TextureType nType /*= TextureType::LOCAL*/)
{
   
	CJoystick* pJoystick = new CJoystick();
	if (pJoystick&&pJoystick->initWithData(strBg, strHandle, nType))
	{
   
		pJoystick->autorelease();
		
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值