「Cocos2dx/property」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→セッターゲッターでpropertyにアクセス) |
|||
| 行36: | 行36: | ||
-SampleModule.cpp | -SampleModule.cpp | ||
| − | |||
USING_NS_CC; | USING_NS_CC; | ||
static const char* mNameStatic = "hoge_property_static"; | static const char* mNameStatic = "hoge_property_static"; | ||
| 行49: | 行48: | ||
-HelloWorldScene.cpp | -HelloWorldScene.cpp | ||
| + | #include "SampleModule.h" | ||
bool HelloWorld::init() | bool HelloWorld::init() | ||
{ | { | ||
2017年3月31日 (金) 17:37時点における版
サンプルコード
cpp側にのみ記述、h側には記述不要。
#include "HelloWorldScene.h"
USING_NS_CC;
const char* mName = "hoge_property"; // 通常property
static const char* mNameStatic = "hoge_property_static"; // static_property
Scene* HelloWorld::createScene()
{
auto scene = Scene::create();
auto layer = HelloWorld::create();
scene->addChild(layer);
return scene;
}
bool HelloWorld::init()
{
mName = "hoge_property2";
log("%s", mName);
mNameStatic = "hoge_property_static2";
log("%s", mNameStatic);
// 略
}
セッターゲッターでpropertyにアクセス
propertyはpublicにできないと思われるので・・。
-SampleModule.h
#ifndef Helloworld_SampleModule_h
#define Helloworld_SampleModule_h
class SampleModule
{
public:
static void setName(const char*);
static const char* getName();
};
#endif
-SampleModule.cpp
USING_NS_CC;
static const char* mNameStatic = "hoge_property_static";
void SampleModule::setName(const char* name)
{
mNameStatic = name;
}
const char* SampleModule::getName()
{
return mNameStatic;
}
-HelloWorldScene.cpp
#include "SampleModule.h"
bool HelloWorld::init()
{
SampleModule::setName("hoge_setget");
log("%s", SampleModule::getName()); // hoge_setget
// 略
}
存在しないプロパティを使った場合のエラーログ
A/libc: Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 17727 (Thread-6094) E/SurfaceComposerClient: update : Can't get IGlobalScreenshot
