ローグライクゲームを作成しています。マップをn等分する線の位置を決めるメソッドで、引数はマップの最小値、最大値、n等分する線の位置を格納する配列です。
2回目に if (pointMin < pointMax) の部分が処理されるとき、pointMaxもしくはpointMinが更新された状態で、処理してほしいのですが、更新されていない状態で処理してしまいます。値渡し?では、値を更新できないことを知ったのですが、対処法がわかりません。どうすれば2回目に if (pointMin < pointMax) の部分を更新した状態で処理できるのでしょうか。参考になるサイトなどがあれば教えていただけると幸いです。
C#
1 void GetSplitPoint(int min, int max, int[] stack_Pos) { 2 3 // 分割する開始位置を作成する 4 // 部屋の区画を最低4マス確報するための定数 5 const int MIN_POS = 5; 6 const int WALL_POS = 5; 7 const int LAST_INDEX = -1; 8 9 int splitNum = 0; 10 int index = 0; 11 int pointMin = min; 12 int pointMax = max; 13 int calcMin = min; 14 int calcMax = max; 15 16 // ここが元に戻る 17 if (pointMin < pointMax) { 18 splitNum = Random.Range(calcMin, calcMax); 19 calcMin = splitNum - pointMin; 20 calcMax = pointMax - splitNum; 21 22 if (calcMax > calcMin) { 23 stack_Pos[index] = splitNum; 24 pointMin = splitNum + MIN_POS; 25 index++; 26 } else { 27 stack_Pos[index] = splitNum; 28 pointMax = splitNum - WALL_POS; 29 index++; 30 } 31 } 32 stack_Pos[index] = LAST_INDEX; 33 }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。