なんとなくだらだらと。方向性はまだ決まってない。
当方のプログラムでは、山田巧さん作成のDXライブラリを利用させていただいてます。
本サイト http://homepage2.nifty.com/natupaji/DxLib/index.html
DX Library Copyright (C) 2001-2008 Takumi Yamada.
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
朝のやる気の無さはどこへやら。なんだか、すごくやりとげた感。
もう、詰まるところは無い。ノンストップでゴールまで突っ走る! ダウンロード Entry022.zip (2009.08.02) あと残ってること ・プレイデータのセーブ・ロード ・敵キャラ一覧を外部ファイルからロードできるように。 ・薬草を購入、戦闘中に回復。これはいらんか? ・戦闘中「逃亡」のリスク導入。 ・それに伴う、フィールド探索の流れを変更。これもいらんか? ファイルアクセスまわり整備したら、ひとまず完成かもしれんね。 ・かいしんのいちげき ・「素早さ」による回避判定 ・魔法とか敵攻撃バリエーションの追加 ・回復魔法 このへんまで気をまわさなくても十分遊べる気がする。 main.cpp Result InputBattleOrder() { Result res = NONE; int cmd,cmdcnt = 0; while(1){ cout << "どうする?(1:攻撃 2:逃げる):"; if(cmdcnt){ cin.clear(); cin.ignore(); } cin >> cmd; cout << "\n"; if(cmd == 1) { res = ATTACK; break;} if(cmd == 2) { res = RUNAWAY; break;} if(cmd == 9) { res = ABORT; break;} if((++cmdcnt)>10){res = ABORT;break;} //無限ループ防止 } return res; } Result Battle(Player &player, Unit &enemy) { int cnt = 1; Result res; list<OrderList> order; list<OrderList>::iterator p; while(1){ order.clear(); Sleep(200); player.ShowStatus(); enemy.ShowStatus(); res = InputBattleOrder(); if(res == ABORT) break; if(res == RUNAWAY){ cout << player.getName() << "は逃げ出した!\n"; break; } Unit * pPlayer = &player; Unit * pEnemy = &enemy; order.push_back(OrderList(player.GetActionPoint(),pPlayer,pEnemy)); order.push_back(OrderList(enemy.GetActionPoint(),pEnemy,pPlayer)); order.sort(); for(p=order.begin(); p!=order.end(); p++) if(pNormalAttack(p->Arry,p->Other)) break; if(enemy.isDead()){res = WIN; break;} if(player.isDead()){res = LOSE; break;} if((++cnt)>100)break; // 無条件ループなので、無限ループ防止 } return res; } Battle()関数から入力受け付けを外に出してみた。 分割しただけだけど、これぐらいの長さなら見た目で処理の流れを把握できると思う。 後半ちょっと間延びしてる気がしないでもないけど、ソートのためだけにまた Unit& 引数を ふたつ受け渡すのも間抜けな感じ。 せっかく、入力受け付けで使ってた playerインスタンスをぜんぶ追い出して、入力側に情報を 渡さないように気を使って、呼び出し元でメッセージ作るように変更したというのに。 ダウンロード Entry022.zip (2009.08.02) 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
アクセス解析
カウンター
|