facebook twitter hatena line email

「Cocos2dx/property」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(セッターゲッターでpropertyにアクセス)
行36: 行36:
  
 
-SampleModule.cpp
 
-SampleModule.cpp
#include "SampleModule.h"
 
 
  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