C++でプレイヤーなどのオブジェクトの初期化 | Apple & パソコン & ゲーム情報掲示ブログ

Apple & パソコン & ゲーム情報掲示ブログ

このサイトでは、パソコンやiphone、ゲーム、などの情報を掲示します。
ゲームも2か月に一回は作っているので、できたら公開するので一度やってみてください!

よろしければみていってください。

C言語のプレイヤーなどの初期化とC++での初期化は何が違うかをまずおしえていきます
C言語ではInitPlayer()みたいな初期化関数をつくってゲームメインの前に入れる感じでやっていましたが、
C++ではnewをつかって初期化をしていきます
使用する命令はclass、コンストラクタ、newだけです

では、くわしいコードを書いていきます
<Object.h>

Objectクラス
class Object{
public:
int x;
int y;
int width;
int height;
int state;

};
<Player.h>
// プレイヤーのクラス Objectを継承させる
class CPlayer:public Object{
public:
  // コンストラクタ
      CPlayer();
  // デストラクタ
      ~CPlayer();
};

<Player.cpp>
// コンストラクタ
// ここに初期化データを書いてあげる
CPlayer::CPlayer()
{
  x = 100;
  y = 200;
  width = 50;
  height = 50;
  state = LIVE;
}
// デストラクタ
CPlayer::~CPlayer(){}


<main.cpp>
// プレイヤーのインスタンスを生成する
CPlayer *Player;
// -------------------------------------------
// WinMain関数
// ------------------------------------------
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
    ChangeWindowMode(TRUE);
    // DXライブラリの初期化
    DxLib_Init();
    // 描画先を裏画面にする
    SetDrawScreen( DX_SCREEN_BACK );
   
    // ここでnewを使用してコントラスタを呼ぶ
    Player = new CPlayer();
   
    while(ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0) 
    {
     
   
        // 裏画面の内容を表画面に反映
        ScreenFlip();
    }

    DxLib_End();
    // ソフトの終了
    return 0;
}


こんな感じが初期化のやり方です
C++は基本クラスをつかってメンバ変数やメンバ関数をうまく扱う
あと、グローバル変数は厳禁なので要注意!!
グローバル変数が厳禁って言われたらどこに変数を置けばいいんだーってなりますけど、
そのときはクラスに必要な変数を入れてあげます
そこからクラスの中に入れたメンバ変数を使用してあげる

これで以上です