無限ループ理由が分からない
C#
1private int gth,area_length,atk_area 2Gridman[] girds; 3public struct Gridman 4 { 5 public int x, y; 6 } 7 8 void Start() 9 { 10 gth = 0; 11 atk_area=1; 12 area_length = atk_area_int+8; 13 grids = new Gridman[area_length]; 14 calic_sign = false; 15 position = map.WorldToCell(this.transform.position); 16 for (var i = 0; i <= atk_area_int; i++) 17 { 18 a = i; 19 for (var ii = 0; ii <= atk_area_int; i++) 20 { 21 b = ii; 22 Caliculator(a,b); 23 if (ii == atk_area_int) break; 24 } 25 } 26 } 27 28 public void Caliculator(int x,int y) 29 { 30 var ans = area_length; 31 var cal = (x - position.x) * (x - position.x) + (y - position.y) * (y - position.y); 32 if (ans <= cal) 33 { 34 grids[gth] = new Gridman() { x = x, y = y }; 35 gth++; 36 } 37 }
このスクリプトはUnityで戦略シミュレーションゲームを開発しようと考えた際、移動マスを計算する為に考えました。
予想する挙動
仮に自キャラの座標を(0,0)とすると、この周囲の
(-1,1)(0,1)(1,1)
(-1,0)(0,0)(1,0)
(-1,-1)(0,-1)(1,-1)
この9マスを取得し、grids[]の配列に
grids[]={(-1,1),(0,1),(1,1),...}
こんな感じになると考えました。
ですがそうならず、無限ループに入ってしまいます。
どうかご教授お願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/14 13:37