Обнаружение столкновения p5 с двумя массивами не работает - PullRequest
2 голосов
/ 15 января 2020

Доброе утро,

Я пытаюсь обнаружить столкновение между двумя объектами из разных массивов. Я пытался использовать два для циклов, но это не работает, так как 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 Ответ

3 голосов
/ 15 января 2020

Итак, вы используете оператор 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();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...