なんとなくだらだらと。方向性はまだ決まってない。
当方のプログラムでは、山田巧さん作成のDXライブラリを利用させていただいてます。
本サイト http://homepage2.nifty.com/natupaji/DxLib/index.html
DX Library Copyright (C) 2001-2008 Takumi Yamada.
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
何度挫折しただろうか。
動くものを動くように作って、動いてから処理を洗練させていけばいいのにと、いつも思う。 なんか、class同士の連絡の取り方がよくわからんのよな。 プレイヤーから入力を受け付ける→敵の行動を決める→行動順を決める→順番に処理 テキストに書きだせばこれだけのことだけど、できない。 とりあえずわかるところから書いてみる。 まあ、とりあえずはいつものやつ。 コンソールアプリなんで、ソリューション「ConsoleRPG」作って、アプリケーションウイザードから 「コンソールアプリ」「空のプロジェクト」を選択。 フォルダが3つぐらい出来てるので、問答無用で削除。 「新しい項目を追加」で、「main.cpp」のメインファイルを追加。 #include <iostream> using namespace std; int main() { cout << "\n\n終了。" << endl; return 0; } 動作確認終了。 さて、考える。 RPGの戦闘に最低限必要な要素は 体力、攻撃力、防御力ぐらいかな。あと、名前。 #include <iostream> #include <string> using namespace std; class Unit { private: string Name; int HP; int Atp; int Dfp; public: void Init(string name, int hp,int ap,int dp); void ShowStatus(); }; int main() クラスUnit を書いてみた。 もちろん設計も何もなく、行き当たりばったり。 とりあえず Init (初期化) と、ShowStatus (パラメータ表示)メソッドを追加する。 void ShowStatus(); }; // 初期化 void Unit::Init(string name, int hp, int ap, int dp) { cout << "Init:"<< name << "\n"; Name = name; MaxHP = HP = hp; Atp = ap; Dfp = dp; } // パラメーター表示 void Unit::ShowStatus() { cout << "【" << Name << "】 HP:" << HP << " ATP:" << Atp << " Dfp:" << Dfp << "\n"; } int main() 差分(追加で打ち込むところ)を青字で書いてるけど、そのへんはふいんきでわかるよね? Init() は、4つの引数をもらって、それぞれ対応する関数にぶち込む。 ShowStatus() は、メンバ関数を表示する。 それだけだし、簡単だよね。 というわけで、メインに実装してみる。 int main() { Unit Player,Enemy; Player.Init("ゆうしゃ", 30, 8, 5); Enemy.Init("ゴブリン", 12, 6, 3); Player.ShowStatus(); Enemy.ShowStatus(); cout << "\n\n終了。" << endl; 動作確認。 Player、Enemy 両方ともちゃんと登録されてるみたいな感じ。 満足。 PR |
カレンダー
カテゴリー
フリーエリア
最新記事
(01/29)
(01/28)
(01/26)
(12/28)
(12/27)
(12/25)
(12/20)
(09/09)
(09/09)
(09/09)
(09/08)
(09/08)
(09/08)
(09/06)
(09/05)
(08/27)
(08/27)
(08/27)
(08/25)
(08/23)
ブログ内検索
P R
アクセス解析
カウンター
|