Обнаружение столкновения p5 с двумя массивами не работает

Доброе утро,

Я пытаюсь сделать обнаружение столкновения между двумя объектами из разных массивов. Я пытался использовать два цикла for, но это не работает, так как seedArray () не определен.

это мой код:

for (let i in seedArray) {
    for (let j in monsterArray) {
        if (
            seedArray[i].x > monsterArray[j].x &&
            seedArray[i].x + seedArray[i].radius <
            monsterArray[j].x + monsterWidth &&
            seedArray[i].y > monsterArray[j].y &&
            seedArray[i].y + seedArray[i].radius < monsterArray[j].y + monsterHeight
        ) {
            gameEnd();
            reset();
        }
    }
}

Есть ли способ заставить это работать?

Заранее спасибо!

Всего 1 ответ


Итак, вы используете утверждение for..in , которое, я думаю, вам не нужно в этом сценарии.

Оператор for ... in выполняет итерации по всем перечисляемым свойствам объекта, которые обозначаются строками (игнорируются те, которые обозначаются символами), включая унаследованные перечисляемые свойства. узнать больше

То, что вам нужно, это утверждение for..of :

for (let seed of seedArray) {
    for (let monster of monsterArray) {
        if (
            seed.x > monster.x &&
            seed.x + seed.radius <
            monster.x + monsterWidth &&
            seed.y > monster.y &&
            seed.y + seed.radius < monster.y + monsterHeight
        ) {
            gameEnd();
            reset();
        }
    }
}

Есть идеи?

10000