2017-03-05 5 views
2

現在、私は小さなスクロールキャンバスゲームを作っています。私はモンスターを実装しようとしています。モンスターのための2つの配列、1つはx位置、もう1つはy位置です。予期せぬ理由により、両方の配列が1152要素まで塗りつぶされ、そのうち2つはあらかじめ定義されており、その他はすべて「NaN」です。あなたのcodepenでJSから次のループは、要素のためmonsterx配列を更新している http://codepen.io/kenshin791011/pen/WpxQmgJavascript配列が予期せずNaNで埋められる

(ファンクションmonsterMoveがキーダウン上で実行される)

var monsterx = [13, 5], 
    monstery = [41, 42]; 
function monsterMove() { 
    for(var i = 0; i < monsterx.length; i++) { 
     var z = Math.floor(Math.random() * 4); 
     switch(z) { 
      case 0: 
       monsterx[i] -= 1; 
       break; 
      case 1: 
       monstery[i] -= 1; 
       break; 
      case 2: 
       monsterx[i] += 1; 
       break; 
      case 3: 
       monstery[i] += 1; 
       break; 
     } 
    } 
} 
+3

あなたが求めるものではありませんが、モンスター= [{x:13、y:41}、{x:5、y:42}] 'と一緒にX座標とY座標を一緒に保存することを考えましたか?ちょうど私にはうまく見えません。 – nnnnnn

+0

ああ、私はそれを行うことができるか分からなかったXD –

答えて

1

は、ここでプログラムへのリンクです初めてことを考えると

​​

cGrid.lengthに0〜有効な数字で開始最初の2つの要素を除いて - それはあなたがNaNの完全な配列を取得する方法だ、は、ほぼすべてのそれらの指標のためのundefinedあり、そしてundefined + 1NaNです。

monstersyと同様のループがあります。

(今後の参考のために、あなたは、変数が更新されている方法がわからない場合は、最初のステップは、その変数のコードを検索することです。それは私が上記の問題を見つけるためにやったすべてです。)

+0

あなたの助けてくれてありがとう!このようなことが起こったときにはいつでもあなたのヒントに従うようにしておきます。 –

関連する問題