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

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

ここから一気にゲームっぽくなる。…と思う。
テキスト、数字のやりとりだけで気持ちよくなれる人種なんて希少種。

CRPG005.png


さっきのエントリかなり長大になってしまった。ちょい反省。
たいしたことやってないんだけど、話を区切るタイミング逸してしまった。
乱数の初期化関連のあたりで一度切ったとしても、長いよなあ。




    while(1){
        player.ShowStatus();
        enemy.ShowStatus();

        NormalAttack(player,enemy);
        NormalAttack(enemy,player);

        break;
    }

/* 削除
    // 結果
    player.ShowStatus();
    enemy.ShowStatus();
*/




while(1) …無限ループは漢のロマン。嘘だけど。
危険。結構怖い。取扱注意。

とりあえず、そっと骨組だけ用意して、最後に break; 入れて一発で抜けるように。
コンパイルして動くことを確認したら、少しづつ手を加えていこう。


    enemy.Init("ゴブリン", 1, 6, 3);

    while(1){
        player.ShowStatus();
        enemy.ShowStatus();

        if(NormalAttack(player,enemy))break;
        if(NormalAttack(enemy,player))break;


        break;
    }



相手の体力がゼロになったら無限ループを抜ける。
ように作ってみた。
ゴブリンの体力を減らして動作確認してみる。
おk、ゴブリンにとどめを刺してからゴブリン動いてないな。


最後の break; 外してもよさそうだけど、ちょっとトリック仕込んでおく。


    enemy.Init("ゴブリン", 12, 6, 3);

    int cnt = 0;
    while(cnt < 20){

        player.ShowStatus();
        enemy.ShowStatus();

        //if(NormalAttack(player,enemy))break;
        //if(NormalAttack(enemy,player))break;

        //break;
        ++cnt;

    }




カウンタートラップがちゃんと働いてるか確認できたら、コメントにしたNormalAttack()を戻す。


    int cnt = 1;
    while(1){
        cout << "\ncnt:" << cnt << "\n";
        player.ShowStatus();
        enemy.ShowStatus();

        if(NormalAttack(player,enemy))break;
        if(NormalAttack(enemy,player))break;

        if((++cnt)>100)break;

    }



while(cnt < 100)と、条件を書いたほうがすっきりかと思ったけど、個人的にwhile(1)
無限ループをアピールしておくほうが好きな感じ。まったくもって感性の問題。

あと、せっかくカウンターつけたんだから、ターン数表示のために使わせてもらう。
ところどころ改行入れておかないと、テキストがつながって読みにくい。


そろそろ、しばらく遊べる感じ。
何度か起動して、出来を確認してみる。

個人的にはすごく楽しいんだけど、最高速でぶん回すのはちょっと味気ない。


#include <iostream>
#include <string>
#include <stdlib.h>        // 乱数取得に必要
#include <time.h>        // rand()の初期化に必要
#include <windows.h>    // 表示のウェイトのためだけに。



で、main()のループにウェイトを入れる。

        if((++cnt)>100)break;
        Sleep(600);
    }

    cout << "\n\n終了。" << endl;
}


こんなんできました。
CRPG005.png
PR


忍者ブログ [PR]
カレンダー
12 2025/01 02
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 31
フリーエリア
バーコード
ブログ内検索
P R
アクセス解析
カウンター