singletonのサンプル?
シングルトンパターン比較
シングルトンパターンじゃなく作ったPlayerクラスをマウスクリックするたびにnewする動画
staticなメンバ変数playerCountがクリックするたびに増えて、自分の番号=playercountになるよ。
適当なソースコード
//Main.cpp
//省略
//ここにやりたい処理を書く
if ((oldMouseInput & MOUSE_INPUT_LEFT) == 0 && (mouseInput & MOUSE_INPUT_LEFT) != 0)
{
int x, y;
GetMousePoint(&x, &y);
Hero *p=new Hero();
p->SetPosition(x, y);
p->SetPosition(x, y);
heroes.push_back(p);
}
for (auto& hero : heroes)
{
hero->Update();
hero->Draw();
}
ScreenFlip();
//省略#pragma once
class Hero
{
private:
int posx_, posy_; // プレイヤーの座標
int myNumber_;// プレイヤーの番号
int hImage_; // プレイヤーの画像
static int playerCount_; // プレイヤーの数
public:
Hero();
~Hero();
void SetPosition(int x, int y);
void Update();
void Draw();
};
Hero::Hero()
: posx_(0), posy_(0), myNumber_(0), hImage_(-1)
{// プレイヤーの画像を読み込む
hImage_ = LoadGraph("Assets/tiny_ship5.png");
if (hImage_ == -1)
{
// 画像の読み込みに失敗した場合の処理
}
playerCount_++;
// プレイヤーの番号を設定
myNumber_ = playerCount_;
}
Hero::~Hero()
{
}
void Hero::SetPosition(int x, int y)
{
posx_ = x;
posy_ = y;
}
void Hero::Update()
{
}
void Hero::Draw()
{
DrawGraph(posx_, posy_, hImage_, TRUE);
DrawFormatString(posx_+32+2, posy_-2, GetColor(255, 255, 255), "Player %d", myNumber_);
}