忍者ブログ
なんとなくだらだらと。方向性はまだ決まってない。 当方のプログラムでは、山田巧さん作成のDXライブラリを利用させていただいてます。 本サイト http://homepage2.nifty.com/natupaji/DxLib/index.html DX Library Copyright (C) 2001-2008 Takumi Yamada.
[23] [22] [21] [20] [19] [18] [17] [16] [15] [14] [13]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

だらだらと心の赴くままに、メイン関数に仕事を突っ込み続けてきたわけですが。
そろそろ、どうしようもないぐらいの大きさに肥大しきってしまっている。

このへん整理しておこう。






まず、気になってる「街の処理」を抜き出す。
ぐわっと範囲指定して、根こそぎ適当に作った関数に入れる。

main.cpp


Result TownEvent(Unit& player)
{
    Result res;
    int cmd,cmdcnt = 0;
    static int stayPrice = 10;

    cout << "\n\n街にいます。\n";
    player.ShowStatus();
    player.ShowMoney();

    while(1){
        cmd = 0;
        cout << "どうする?(1:出撃 2:宿屋(" << stayPrice << "G) 9:終了):";
        if(cmdcnt){
            cin.clear();
            cin.ignore();
        }
        cin >> cmd;
        cout << "\n";
        if(cmd == 1) { res = DEPARTURE; break;}
        if(cmd == 2) {
            player.Stay(stayPrice);
            cmdcnt = 0;
            //stayPrice += 5;     // 泊まるたびに値上げしていくよ(;^ω^)
        }
        if(cmd == 9) {res = ABORT; break;}

        if((++cmdcnt)>10){res = ABORT; break;}   //無限ループ防止
    }

    return res;

}




前回勇み足だった、enum Result の宿屋側の状態が、ようやく日の目を見ることに。
ここから抜けだす条件は、DEPARTURE(出撃)と ABORT(強制終了)だけなので
STAY(宿に泊まる)とかは意味無しの盲腸なんだけど。

いっしょうけんめいエキサイト和英辞典で調べたのに。


ちょこちょこ整合性整えながら、隠し味を仕込む。
stayPrice なんて付け加えて、宿屋の値段を変更できるようにしてみる。仕込みはじゅうぶん。


呼び出し側
main.cpp


    while(1)
    {
        // 街
        res = TownEvent(player);
        if(res==ABORT) break;

        // 戦闘
        for(int i=0;i<5;++i)
        {


えー?
こんなに短くなっていいの?

って感じになってしまった。
なんか不安な気もするけど、よく考えて流れ読んでも不自然なところは無さそう。
テストプレイも問題なく動いてる。


・・・あの、これ、宿屋で断られても宿代どんどん上がっていくんですけど・・・

ちょっといたずら程度のつもりだったけど、思いつきで入れるには案外修正箇所が多くなりそう
だったんで、コメントアウトで保留しておくことにする。



この調子で行くぜ!
ってなわけで、敵味方の初期化も外に出す。
まずは味方。

main.cpp


void InitPlayer(Unit &player)
{
    player.Init("ゆうしゃ", 30, 8, 5, 0);
}



int main()
{
    Result res;
    srand(static_cast<unsigned int>(time(NULL)));

    Unit player,enemy,eList[5];
   
    InitPlayer(player);




意味無いというかむしろ長くなったような気がするけど、そんなことは無いんだぜ。
次の段階でセーブ・ロードを作ろうと思ってるから、またメインに書いてメインが長くなると
俺の機嫌が悪くなる。


簡単に追い出したんで、次は敵の一覧を・・・

・・・できない(´・ω・`)

クラスの配列を参照する方法がよくわからん。
これこそ、外部ファイル作ってユーザーに勝手に改造して遊んでもらう部分なのに。


同様に、戦闘(斡旋)の部分も、敵一覧が渡せないんで保留。


俺にゲームの完成を求めるなら、グローバル宣言してやる!


PR


忍者ブログ [PR]
カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
フリーエリア
バーコード
ブログ内検索
P R
アクセス解析
カウンター