私はC言語の知識を習得するために取り組んでいる単純なゲームプロジェクトを持っています。私の地形の「地図」を含んでいる配列を持っている瞬間、アイテムと敵も含まれています。これはうまくいきますが、それを改善するために、2つの配列が重なっているので、アイテムを地形に置くことはありませんが、地形と重なる別のアイテム配列に配置します。 私はそれを下の方法で近づけました。1つの配列を評価しているが値を別のものに書き込む問題
void items(int * terrainMap, int itemCount, int * itemMap){
int newx = getRand(0, xsize);
int newy = getRand(0, ysize);
int count = 0;
while (count < itemCount){
if (getCell(newx, newy, terrainMap) == corridoor|| getCell(newx, newy, terrainMap) == floor){
setCell(newx, newy, chest, itemMap);
count++;
}
else {
newx = getRand(0, xsize);
newy = getRand(0, ysize);
}
}
}
両方の配列が初期化され、地形がマップされ、項目が空のタイルに設定されます。私がしようとしていることは、if条件で地形が通過可能かどうか(廊下か床か)をチェックし、もしそうなら胸を置いて地形ではなく項目配列に置きます。上記のコードは、私が地形に胸を置いた場合に機能しますが、アイテム配列に1つの胸を配置するようにしか見えません。
私が間違っている場所について教えてもらえますか?または、この方法のいくつかの改善を提案しますか?非常に前もってありがとう - 私は非常にすべてのアドバイスが素晴らしいので、Cとコーディングに新しいです。
ステップスルーデバッガを使用しましたか? – Dai