2017-10-03 3 views
0

Ich habe Probleme mit der Verschachtelung eines Vektors in einem Array. Ich habe createVector() verwendet, aber festgestellt, dass das nicht funktioniert hat. Ich schaute auf andere Artikel, obwohl sie nicht p5 Javascript angewendet, und das ist, wo ich derzeit bin:Erstellen eines Vektors in einem Array

function makePoints() { 
    var cities = []; 

    if (difficulty === 'hard') { 
     cities.length = 40; 

     for (i = 0; i < cities.length + 1; i++) { 
      cities.push(new createVector(random(20, width - 20), random(20, height - 20))); 
     } 
    } 
} 

Antwort

0

Sie zuerst cities.length = 40 sagen, die mit 40 undefined das Array auffüllt. Dann drängen Sie darauf, aber verwenden Sie das Array, auf das Sie drücken, um die Länge zu stoppen. Also macht der erste Druck die Länge 41, der zweite Druck die Länge 42. Sie laufen in eine Endlosschleife, weil i nie cities.length + 1 erreichen wird (was nur cities.length sein sollte).

Wenn Sie Ihr Array 40 in der Länge zu machen, dann statt dessen drängen tun:

for (i = 0; i < cities.length; i++) { 
    cities[i] = createVector(random(20, width - 20), random(20, height - 20)); 
} 
0

Warum Sie cities.length ändern sich? Wy nicht nur:

var difficulty = 'hard'; 
 
function setup() { 
 
    createCanvas(720, 400); 
 
    makePoints(); 
 
} 
 

 

 
function makePoints() { 
 
    var cities = [], 
 
     citiesSize = 40; 
 

 
    if (difficulty === 'hard') { 
 
    for (i = 0; i < citiesSize; i++) { 
 
     cities.push(createVector(random(20, width - 20), random(20, height - 20))); 
 
    } 
 
    } 
 
    console.log(cities); 
 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.14/p5.min.js"></script>

Verwandte Themen