ゲーム

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
えみ

ゲーム

#1

投稿記事 by えみ » 17年前

もぐらたたきを作るときに
モグラが指定した領域から出てきたり引っ込んだりするプログラムは
rand()とfor()を使ってどのように作ればよいでしょうか??

えみ

Re:ゲーム

#2

投稿記事 by えみ » 17年前

すみません。
ゲームはmicrosoft visual studio .net 2003で作ろうと思っています。

管理人

Re:ゲーム

#3

投稿記事 by 管理人 » 17年前

ちょっとあまりにも説明が大雑把過ぎてアドバイスのしようがありませんが、
まず、何で作るのですか?DXライブラリですか?
また、ゲームシステム全般はもうご存知だとして、その部分的なアルゴリズムだけでいいのでしょうか?
それから、出てきたり引っ込んだりする時に、モーションを使うのか、それとも
出てるだけか引っ込んでるだけかでいいのか、でもまた実装の仕方は違いますし、
具体的に言っていただけないとアドバイス出来ないと思います。

一般的な話をするならば、

typedef struct{
    int x,y;
    int flag;
}mogura_t;

のようにモグラのデータを持った構造体を用意し、モグラの数だけ

mogura_t mogura[MOGURA_MAX];

こんな感じでつくり

○○○
○○○
○○○

もしこんな9つのモグラがいるのなら、(x,y)=(0,0)~(x,y)=(2,2)まで代入して初期化しておき、
flagが0なら引っ込んでいる、1なら出ているなどとフラグ管理すればいいと思います。

叩いた瞬間、その範囲が有効な範囲内であれば
例えば

x=叩いた座標/100;
y=叩いた座標/100;

のようにすれば、xy座標が0,0~99,99の範囲は0,0に入る・・といったように範囲わけできるので、

for(i=0;i<MOGURA_MAX;i++){
    if(mogura.x==x && mogura.y==y && mogura.flag==1){
        叩いた!;
    }
}

とかすれば叩けたかどうか判定出来るでしょう。
rand関数はモグラが出現する時に使いたいのでしょうか。

それなら普通にrand()%MOGURA_MAXとかで値を生成し、
flagが0なら有効、1ならもう一回乱数を作り直す、全部flagが1なら生成しない・・とすればいいと思います。

閉鎖

“C言語何でも質問掲示板” へ戻る