721
社区成员
发帖
与我相关
我的任务
分享
#pragma once
#include "cocos2d.h"
class MyCososAnimate :public cocos2d::Node
{
public:
MyCososAnimate();
~MyCososAnimate();
cocos2d::Sprite* m_sprite = nullptr;
cocos2d::Animation* m_animation = nullptr;
cocos2d::Animate* m_animate = nullptr;
cocos2d::ActionInterval * m_action = nullptr;
bool MyRunAction();
virtual bool init(cocos2d::Scene*);
static MyCososAnimate* create(cocos2d::Scene*);
};
#include "MyCososAnimate.h"
using namespace cocos2d;
MyCososAnimate::MyCososAnimate()
{
}
MyCososAnimate::~MyCososAnimate()
{
}
MyCososAnimate* MyCososAnimate::create(cocos2d::Scene* _pScene){
MyCososAnimate* pRet = new MyCososAnimate();
if (pRet && pRet->init(_pScene))
{
pRet->autorelease();
}
else
{
delete pRet;
pRet = nullptr;
}
return pRet;
}
bool MyCososAnimate::init(cocos2d::Scene* _pScene){
auto visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
// add "HelloWorld" splash screen"
m_sprite = Sprite::create("images/Down_01.png");
Vector<SpriteFrame*> animFrames;
int tmpSize = 4;
animFrames.reserve(4);
for (int i = 1; i <= tmpSize; i++)
{
char tmpStr[50] = {};
sprintf_s(tmpStr, "images/Down_0%d.png", i);
animFrames.pushBack(SpriteFrame::create(tmpStr, Rect(0, 0, 25, 41)));
}
//Animation* animation = Animation::createWithSpriteFrames(animFrames, 0.1f);
//Animate* animate = Animate::create(animation);
m_animation = Animation::createWithSpriteFrames(animFrames, 0.1f);
m_animate = Animate::create(m_animation);
m_animate->retain();
m_sprite->setScale(2.0f);
// run it and repeat it forever
m_action = CCRepeatForever::create(m_animate);
// position the sprite on the center of the screen
m_sprite->setPosition(Vec2(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y));
// add the sprite as a child to this layer
_pScene->addChild(m_sprite, 0);
return true;
}
bool MyCososAnimate::MyRunAction(){
m_sprite->runAction(m_action);
return true;
}
void HelloWorld::menuCloseCallback(Ref* pSender)
{
tmpAni->MyRunAction();
}