1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Spriteクラスを継承して値を持つ画像を作る[Cocos2d-x]

Posted at

#はじめに
普通の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(){
    //このクラスの処理を書く
}

自分の作りたい関数や変数を持たす
プレイヤーやエネミーなど用途は様々

#次回
何か考える

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?