2017-10-03 6 views
0

Je semble avoir des problèmes avec l'imbrication d'un vecteur dans un tableau. J'ai utilisé createVector(), mais j'ai trouvé que cela ne fonctionnait pas. Je regardais les autres articles, mais ils appliqués à javascript non p5, ce qui est là où je suis actuellement à:Création d'un vecteur dans un tableau

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))); 
     } 
    } 
} 

Répondre

0

Vous dites d'abord cities.length = 40 qui remplit le tableau avec 40 undefined. Ensuite, vous poussez dessus, mais en utilisant le tableau que vous poussez à la longueur d'arrêter. Donc la première poussée fait la longueur 41, la deuxième poussée fait la longueur 42. Vous courez dans une boucle infinie parce que i n'atteindra jamais cities.length + 1 (qui devrait juste être cities.length).

Si vous voulez faire de votre tableau 40 de longueur, alors au lieu de pousser le faire:

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

Pourquoi voulez-vous changer cities.length? Wy pas seulement:

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>