ページ 11

ループ処理について・・・

Posted: 2007年11月22日(木) 13:01
by C.P.P
こんにちは。いつもこちらでは大変お世話になっております☆
またまた質問です!いつも質問ばかりして申し訳ありません・・・(>_<)

今回の質問はループ処理についてです。
作成しておりますのは、街並みを作るようなソフトでありまして(まだ練習段階ですのではっきりとは決まっておりません)、マウスによってある範囲をクリックすれば家の描写をします。その家の画像をマウスによって移動しドラッグ&ドロップしたり、大きさを変えたりします。

ここまでは皆様に色々アドバイスをしていただいたおかげで進むことが出来ました。

ここで、分からないところが出てきましたので質問させていただきます。
ある範囲をクリックすれば家の画像が一つ出てきます。
その画像を一つだけでなく、クリックする度に何個も出てくるようにしたいのですが・・・
自分でなんとか試行錯誤を重ね何度やりましても上手くいきませんでした。

ヒントやアドバイスだけでも助かりますので、どうぞご教授お願いいたします。

また、質問の意味や内容が分からない場合には、ご指摘お願いいたします。

Re:ループ処理について・・・

Posted: 2007年11月22日(木) 13:45
by 管理人
うまく行きませんでした、では、どううまく行かなかったかよくわかりませんが、
一般的に同じような情報を持ったものをいくつも扱う時は、構造体を使うと便利です。
既にお使いかもしれませんが、

x,y座標とどのような家か、表示中かという種類の情報を必ず持つのなら
#define N 30

typedef struct{
    int x,y,kind,flag;
}home_t;

home_t home[N];


 
例えばこのような構造体を作ればいいでしょう。
使用中の情報にはフラグを立てるとすれば、

for(i=0;i<N;i++){
    if(home.flag==0){
        home.flag=1;//フラグを立てる
        home.x=マウス.x;
        home.y=マウス.y;
        home.kind=種類;
        break;
    }
}
if(i==N)
    printf("登録できませんでした\n");

このように使用することが出来ます。
iがNになっていると言う事は、if文に入らなかったと言う事を意味し、登録できなかったと言う事です。
描画部では

for(i=0;i<N;i++){
    if(home.flag==1){
        DrawGraph(home.x,home.y,.....);
    }
}
 
 

こうして描画してやればいいでしょう。
回答が的外れだとすみません(_ _||)

Re:ループ処理について・・・

Posted: 2007年11月22日(木) 16:45
by C.P.P
早速の返信ありがとうございます。

多少質問の内容が分かりにくかったみたいで申し訳ございません。
以後気をつけさせていただきます。

それでは早速管理人さんにいただいたアドバイス通りさせていただきます。

大変助かりました♪
ありがとうございました(^o^)