#はじめに
普通のSprite(画像)だと数値を持つことが出来ないため継承して拡張して使用する
とても重要でよく作ることになるクラス
継承するクラスを変えればさらに用途が広がる
Sample.h
#ifndef __Sample__
#define __Sample__
#include <iostream>
#include "cocos2d.h"
class Sample : public cocos2d::Sprite
{
public:
void calData();
protected:
//元の画像の上にさらに画像を追加できる
//ヘッダーに書いておくとcpp内のどの関数からもアクセス出来る
cocos2d::Sprite* addSprite;
int data;
//sceneと同じでupdateでフレームで回すことが出来る
void update(float dt);
public:
//getterとsetterを同時に作成
//このget~とset~で親からアクセスすることが出来る
CC_SYNTHESIZE(bool, start, Start);
CC_SYNTHESIZE(int, count, Count);
Sample();
~Sample();
virtual bool init();
static Sample* create();
};
#endif /* defined(__Sample__) */
Sample.cpp
#include "Sample.h"
using namespace cocos2d;
using namespace StringUtils;
//コンストラクター
//作成されるときに起こる処理
//:以降で数値の初期化をすることが出来る
Sample::Sample()
:count(0)
{
}
//デストラクター
//このクラスが終わるときに起こる処理
Sample::~Sample()
{
}
Sample* Sample::create()
{
Sample* ret = new Sample();
if (ret && ret->init())
{
ret->autorelease();
return ret;
}
else
{
CC_SAFE_DELETE(ret);
return NULL;
}
}
bool Sample::init()
{
std::string fileName;
//作成したい画像のファイルパス
fileName = "sample.png";
if (!Sprite::initWithFile(fileName)) return false;
//Sceneと同じで下の一文でフレームをぶん回す
//scheduleUpdate();
addSprite = Sprite::create("addSprite.png");
addSprite->setPosition(Vec2(getContentSize() * 0.5));
addChild(addSprite, 1);
return true;
}
void Sample::update(float dt){
//常に動かしたい処理を書く
}
void Sample::calData(){
//このクラスの処理を書く
}
自分の作りたい関数や変数を持たす
プレイヤーやエネミーなど用途は様々
#次回
何か考える