勤奋努力,持之以恒!
cocos2d-x定义了很多宏定义,有助于我们提高开发效率
而CC_PROPERTY 用来声明一个protected变量。
使用CC_PROPERTY声明的变量可以使用getter获取变量的值,使用setter设置变量的值。
CC_PROPERTY的声明在CCPlatformMacros.h中,结构如下
/** CC_PROPERTY is used to declare a protected variable.
We can use getter to read the variable, and use the setter to change the variable.
@param varType : the type of variable. 变量类型
@param varName : variable name. 变量名称
@param funName : "get + funName" is the name of the getter.
"set + funName" is the name of the setter.
@warning : The getter and setter are public virtual functions, you should rewrite them first.
The variables and methods declared after CC_PROPERTY are all public.
If you need protected or private, please declare.
*/
#define CC_PROPERTY(varType, varName, funName)\
protected: varType varName;\
public: virtual varType get##funName(void);\
public: virtual void set##funName(varType var);
CC_PROPERTY使用方法:
.h
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
#include "cocos2d.h"
USING_NS_CC;
using namespace std;
class HelloWorld : public CCLayer
{
public:
virtual bool init();
static CCScene* scene();
CREATE_FUNC(HelloWorld);
CC_PROPERTY(unsigned int, _heroID, HeroID);
CC_PROPERTY(string, _heroName, HeroName);
};
#endif // __HELLOWORLD_SCENE_H__
.cpp
#include "HelloWorldScene.h"
#include "SimpleAudioEngine.h"
using namespace cocos2d;
using namespace CocosDenshion;
CCScene* HelloWorld::scene()
{
CCScene *scene = CCScene::create();
HelloWorld *layer = HelloWorld::create();
scene->addChild(layer);
return scene;
}
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
if ( !CCLayer::init() )
{
return false;
}
this->setHeroID(110120);
this->setHeroName("police doctor");
CCLog("HeroID == %d, HeroName == %s",this->getHeroID(),this->getHeroName().c_str());
return true;
}
//CC_PROPERTY(unsigned int, _heroID, HeroID);
void HelloWorld::setHeroID(unsigned int var)
{
_heroID = var;
}
unsigned int HelloWorld::getHeroID()
{
return _heroID;
}
//CC_PROPERTY(string, _heroName, HeroName);
void HelloWorld::setHeroName(string var)
{
_heroName = var;
}
string HelloWorld::getHeroName()
{
return _heroName;
}
分享到:
相关推荐
该资源主要用于cocos2d-x中Value与json字符串的相互转换,提供从json文件读取为cocos2d::Value,cocos2d::Value写入到文件,cocos2d::Value转换为json字符串,json字符串转换为cocos2d::Value。json字符串转换成cocos...
Cocos2d-x实战_Lua卷 _第2版
Cocos2d-X_by_Example_Beginners_Guide[PDF版] 实例代码: Cocos2d-X_by_Example_Beginners_Guide[第三章代码] Cocos2d-X_by_Example_Beginners_Guide[第四章代码] Cocos2d-X_by_Example_Beginners_Guide[第五章...
cocos2d-x实战_lua卷
cocos2d-android游戏引擎是著名游戏引擎cocos2d游戏引擎的Android版。cocos2d-android游戏引擎性能优越、易学、可以进行纯java编程、具有极高的研 究价值、大大的降低了开发者的学习成本。您只需要一台普通配置的...
资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...
cocos2d-x实战_js卷
入门cocos2d-x不可多得的好资料,环境说明,工程搭配,实例教程
编译前需要把cocos2d-x的文件复制到OzgGameEatFish/cocos2d里面,或新建一个游戏项目然后将cocos2d文件夹复制到本游戏的对应目录 win32平台使用vs2015。 android平台直接在OzgGameEatFish目录下执行cocos compile -p...
cocos2d的HTML5的开源框架,我认为是目前最好的
654606 Cocos2d-x实战_Lua卷 _第2版__关东升 纯书籍下载
Cocos2d_for_iPhone_1_Game_Development_Cookbook的代码, 网上有e文的书, 我将陆续翻译成中问给大家看~
Cocos2d-x_C++_3.4,48款游戏源码大合集,Demo 演示代码,简单实现:捕鱼达人,FlappyBird,2048,塔防,微信飞机,超级玛丽,坦克大战,刀塔传奇,防空-合金弹头,城市猎人(跑酷),封神,跑酷30,切水果,奇怪大冒险,翻牌效果,...
资源名称:Cocos2d-x入门视频教程(全7讲)资源目录:【】cocos2d-x视频教程_01【】cocos2d-x视频教程_02【】cocos2d-x视频教程_03【】cocos2d-x视频教程_04【】cocos2d-x视频教程_05【】cocos2d-x视频教程_06【】...
Cocos2d_for_iPhone_1_Game_Development_Cookbook
NULL 博文链接:https://o0o0o0o.iteye.com/blog/805541
cocos2d 像素鸟 大众所熟知的一款简单的小游戏
俄罗斯方块cocos2d-x_1083源代码
使用_cocos2d-x_和_Lua_快速开发游戏.pdf
cocos2d-x_2.1.2_EN_API.chm cocos2d-x_2.1.2 最新办API手册。