2016-07-22 3 views
0

を与える:にconsole.logは正しい出力を与えるが、設定値にアクセスするときには、関数と呼ば間違った出力

this.findVerticalPossibleScoring = function(){ 
     var possibilitySet = []; 
     for (var j = 0; j < 9;j++) { 
      for (var i = 0; i < 7;){ 
       var tempTile = this._tiles[i][j]; 
       if(this.gameTilesValue[i][j]!=-1){ 
        var tileTagValue = this.gameTilesValue[i][j]; 
        if(this.gameTilesValue[i+1][j]==tileTagValue && this.gameTilesValue[i+2][j]==tileTagValue){ 
         setElement = []; 
         do{ 
          var tempPoint = this.makeArray(i,j); 
          setElement.push(tempPoint); 
          console.log(" verical i:"+i+" j:"+j); 
          i=i+1; 
         }while(i<9&&this.gameTilesValue[i][j]==tileTagValue); 
         possibilitySet.push(setElement); 
         continue; 
        } 
       } 
       i = i+1; 
      } 
     } 
     return possibilitySet; 
    }; 
    this.makeArray = function (a,b){ 
     console.log("element i:"+a+" j:"+b); 
     var arrayTemp = []; 
     arrayTemp.push(a); 
     arrayTemp.push(b); 
     return arrayTemp; 
    }; 

機能の一部を呼び出す:

if(scoringPossible == true){ 
       //blast the tiles and add new tiles; 
       var verticalPossibleScoring = this.findVerticalPossibleScoring(); 
       toBeDeletedTiles = []; 
       for(var i=0;i<verticalPossibleScoring.length;i++){ 
        var tempSet = verticalPossibleScoring[i]; 
        for(var j = 0;j<tempSet.length;j++){ 
         var tempSetEntry = tempSet[i]; 
         console.log("TILE i:"+tempSetEntry[0]+" j:"+tempSetEntry[1]); 
        } 
       } 
      } 

私があれば関数を呼び出すだけでなく、機能と呼ばれる追加されました呼び出し関数が大きすぎるためループします。私はこれが悪名高いjavascriptループの問題であることを知っています。私はgc-devkitゲームエンジンを使用しています。これは新しいもので、新しいものです。カスタムクラスを作成して、UIImageで同じ問題を解決しましたが、カスタムの配列は必要ありません。誰でも私をこの問題で導くことができますか?前もって感謝します。

答えて

1

ループ変数としてjを使用していますが、tempSetから反復するときはiを使用します。多分ちょうど

var tempSetEntry = tempSet[j]; 
+0

var tempSetEntry = tempSet[i]; 

を変更ありがとうございました!それは小さくてばかげたミスでした。 – Renaissance

+0

うれしかった! – Davis

関連する問題