это моя вторая попытка в этом вопросе, надеюсь, я могу быть немного более яснее относительно моей проблемы. У меня есть начальная настройка p5.js:
// Setup empty array (I beleive 'position' this is in the global scope?)
let position = []
//p5 setup
function setup(){
createCanvas(400,400)
// Simple for loop to create an array of floating random numbers between 5 and 10 using the p5.js random function
for(let i = 0; i < 10 ; i++){
let x = random(5,10)
position.push(x)
}
}
function draw(){
background(100)
text('This is the implementation of random ${random(5,10)',10,10)
}
// Loging position unless I am mistaken, does NOT show the array
console.log(position)
// But trying to access an specific value within the array gives an 'undefined'
console.log(position[1])
// Undefined
Как получить доступ к индивидуальной стоимости?
let position = []
function setup() {
createCanvas(400, 400);
for (let i = 0; i < 10; i++) {
let x = random(5, 10)
position.push(x)
}
}
console.log('The position array is ${position}')
console.log('The length of the position array is ${position.length}')
console.log('The second value in the position array is ${position[1]}')
function draw() {
background(200)
text('This is the implementation of random ${random(5,10)}',10,10)
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.16/p5.js"></script>
Пожалуйста, подтвердите порядок выполнения кода. Рассмотрим этот основной пример:
console.log('one');
function setup(){
console.log('two');
}
function draw(){
console.log('three');
}
Когда ваш код загружен, это происходит:
console.log()
первый оператор console.log()
и печатается 'one'
.setup()
определена, но пока не выполняется.draw()
определена, но пока не выполняется.setup()
функции setup()
и draw()
.Теперь рассмотрим этот пример, который ближе к тому, что у вас есть:
function setup(){
console.log('two');
}
console.log('one');
function draw(){
console.log('three');
}
Когда вы запускаете этот код, происходит следующее:
setup()
определена, но пока не выполняется.console.log('one')
запускается и печатается 'one'
.draw()
определена, но пока не выполняется.setup()
функции setup()
и draw()
.Другими словами, код, который вы используете вне функции, выполняется до того, как эти функции будут автоматически вызваны библиотекой P5.js. В вашем случае вы запускаете код, который обращается к массиву, прежде чем добавлять что-либо к нему.
Чтобы устранить проблему, переместите код внутри функции setup()
. Это все.
random
?setup()
. Исправьте свой отступ, и это станет очевидным. У фрагментов есть кнопка «Tidy», которая делает это за вас.