您的位置:首页 > 移动开发 > Cocos引擎

制作时钟cocos3.0

2016-06-27 01:13 330 查看
clockBackgroundScene.h头文件:

#ifndef __Clock_1__clockBackgroundScene__
#define __Clock_1__clockBackgroundScene__

#include <iostream>
#include "cocos2d.h"
USING_NS_CC;
class clockBackground: public Layer
{
public:
virtual bool init();
static cocos2d::Scene * scene();
CREATE_FUNC(clockBackground);
void MutUpdate(float dt);
public:
Sprite * m_hour;
Sprite * m_minute;
Sprite * m_second;
int mRotation;
int sRotation;
int hRotation;
private:
int nHour;
int nMinute;
int nSecond;

};
#endif


clockbackgroundScene.cpp文件:
#include "clockBackgroundScene.h"

Scene * clockBackground::scene(){
Scene * scene = Scene::create();
clockBackground * layer = clockBackground::create();
scene->addChild(layer);
return scene;
}

bool clockBackground::init(){
Size winSize = Director::getInstance()->getVisibleSize();
Sprite * clockBk = Sprite::create("background.jpg");
clockBk->setPosition(ccp(winSize.width / 2, winSize.height / 2));
clockBk->setScale(0.5f);

this->addChild(clockBk);

m_minute = Sprite::create("fen.png");
m_minute->setAnchorPoint(ccp(0, 0.5));
m_minute->setScale(0.2f);
m_minute->setRotation(-90);
m_minute->setPosition(ccp(winSize.width / 2, winSize.height / 2));
this->addChild(m_minute);

m_second = Sprite::create("miao.png");
m_second->setAnchorPoint(ccp(0, 0.5));
m_second->setScale(0.2f);
m_second->setRotation(-90);
m_second->setPosition(ccp(winSize.width / 2, winSize.height / 2));
this->addChild(m_second);

m_hour = Sprite::create("shi.png");
m_hour->setAnchorPoint(ccp(0, 0.5));
m_hour->setScale(0.2f);
m_hour->setRotation(-90);
m_hour->setPosition(ccp(winSize.width / 2, winSize.height / 2));
this->addChild(m_hour);

///////////////获取系统当前时间
struct tm *tm;
time_t timep;
time(&timep);
tm = localtime(&timep);
//int year = tm->tm_year + 1900;
//int month = tm->tm_mon + 1;
//int day = tm->tm_mday;
nHour = tm->tm_hour;
nMinute = tm->tm_min;
nSecond = tm->tm_sec;
log("%d-%d-%d", nHour, nMinute, nSecond);
/////////////
mRotation = nMinute * 5 - 90;//nMinute;
sRotation = nSecond * 5 - 90;// nSecond;
hRotation = -nHour - 90;// nHour + 80;

this->schedule(schedule_selector(clockBackground::MutUpdate), 1);

return true;
}
void clockBackground::MutUpdate(float dt){

//static int mRotation = nMinute;//*6*/
//static int sRotation = nSecond;//static 静态变量

//static int hRotation=nHour;
if (nHour > 12){
//hRotatio = (nHour - 12) * 5 * 6 + (mRotation / 72) * 6;

}
else{
//hRotatio = (nHour)* 5 * 6 + (mRotation / 72) * 6;
}

m_second->setRotation(sRotation);

//m_second->runAction(RotateBy::create(sRotation,360));
m_minute->setRotation(mRotation);
m_hour->setRotation(hRotation);
//log("%d", sRotation);
if (sRotation >= 360){
sRotation = 0;
mRotation += 6;
m_minute->setRotation(mRotation);
if (mRotation % 72 == 0){//mRotation % 72 == 0
hRotation += 6;//6
m_hour->setRotation(hRotation);
if (mRotation >= 360){
mRotation = 0;
}
}
}
sRotation += 6;
//hRotation += 6;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: