1.摇杆类
//
// Rocker.hpp
// Rocker
//
// Created by Forest on 16/7/11.
//
//
#ifndef Rocker_hpp
#define Rocker_hpp
#include <stdio.h>
#include "cocos2d.h"
USING_NS_CC;
class Rocker;
class RockerDelegate{
public:
virtual void rockerTouchBegan(Rocker* rocker,const Vec2& normalize) = 0;
virtual void rockerTouchMoved(Rocker* rocker,const Vec2& normalize) = 0;
virtual void rockerTouchEnded(Rocker* rocker,const Vec2& normalize) = 0;
};
class Rocker : public Node {
Rocker();
~Rocker();
Sprite* m_rocker;
Sprite* m_rockerBG;
Touch* m_touch;
EventListenerTouchAllAtOnce* m_listener;
bool isTouchInside(Touch* touch);
void touchBeganRocker(const Vec2& normalize);
void touchMovedRocker(const Vec2& normalize);
void touchEndedRocker(const Vec2& normalize);
void touchesBegan(const std::vector<Touch*>& touches, Event* event);
void touchesMoved(const std::vector<Touch*>& touches, Event* event);
void touchesEnded(const std::vector<Touch*>& touches, Event* event);
public:
static Rocker* createRocker(const std::string& rockerImage,const std::string& rockerBGImage);
bool initRocker(const std::string& rockerImage,const std::string& rockerBGImage);
void startRocker();
void stopRocker();
CC_SYNTHESIZE(RockerDelegate*, m_rockerDelegate, RockerDelegate);
};
#endif /* Rocker_hpp */
//
// Rocker.cpp
// Rocker
//
// Created by Forest on 16/7/11.
//
//
#include "Rocker.hpp"
#include <algorithm>
Rocker::Rocker():
m_rocker(nullptr),m_rockerBG(nullptr),m_touch(nullptr),m_listener(nullptr)
{
}
Rocker::~Rocker(){
}
Rocker* Rocker::createRocker(const std::string &rockerImage, const std::string &rockerBGImage){
Rocker* rocker = new Rocker();
if (rocker && rocker->initRocker(rockerImage,rockerBGImage)) {
rocker->autorelease();
return rocker;
}
CC_SAFE_DELETE(rocker);
return nullptr;
}
bool Rocker::initRocker(const std::string &rockerImage, const std::