Wintermute Engine Forum

Czech forum => Technické fórum => Topic started by: Siky on May 31, 2007, 06:24:45 PM

Title: 2D pole
Post by: Siky on May 31, 2007, 06:24:45 PM
Můžete mi někdo poradit proč mi nechodí to dvoudimenzionální pole array1?

Code: [Select]
var array1 = new Array();

function napln_data()
{
var temp1;
var array2 = new Array();
for (var j=0; j<3; j=j+1)
{
  for (var i=0; i<3; i=i+1)
  {
    array2[i] = 10*i+j;
    Game.LOG(array2[i]);
  }
  temp1.array = array2;
  array1[j] = temp1;
}

}

function vypis_data()
{
var t;
var t2;
for (var j=0; j<3; j=j+1)
{
  t = array1[j];
  for (var i=0; i<3; i=i+1)
  {
    t2 = t.array;
    Game.LOG(t2[i]);
  }
}

Po volání:
Code: [Select]
napln_data();
Game.LOG("----------");
vypis_data();

to vypíše:
Code: [Select]
19:16: 0
19:16: 10
19:16: 20
19:16: 1
19:16: 11
19:16: 21
19:16: 2
19:16: 12
19:16: 22
19:16: ----------
19:16: 2
19:16: 12
19:16: 22
19:16: 2
19:16: 12
19:16: 22
19:16: 2
19:16: 12
19:16: 22

Mělo by to přeci vypsat ta samá data, ne?
dík za radu
Title: Re: 2D pole
Post by: Mnemonic on May 31, 2007, 06:55:57 PM
Protoze array2 je porad tentyz objekt, jenom ho plnis trikrat, takze v nem zustanou ty posledni hodnoty.
Zrejme jsi mel na mysli spis tohle:

Code: [Select]
function napln_data()
{
  var temp1; 
  for (var j=0; j<3; j=j+1)
  {
    var array2 = new Array();
    for (var i=0; i<3; i=i+1)
    {
      array2[i] = 10*i+j;
      Game.LOG(array2[i]);
    }
    temp1.array = array2;
    array1[j] = temp1;
  }
}
Title: Re: 2D pole
Post by: Siky on May 31, 2007, 07:01:33 PM
Jo, to je přesně ono, to jsem přehlédl. Díky