#javascript #reactjs #p5.js
Вопрос:
Я пытаюсь загрузить эскиз p5 в сборку react. Используя react-p5-оболочку, я могу успешно визуализировать свой холст на экране, однако некоторые векторные функции вызывают ошибки.
var distance = this.position.dist(ball.position)
var minDistance = this.radius ball.radius
if (ball === this || distance > minDistance) {
return
}
// balls colliding. First, move them apart.
console.log(this.position)
console.log(ball.position)
let angle = p5.Vector.sub(this.position, ball.position)// <= RIGHT HERE[![Error Message][1]][1]
// return
В этой части моя консоль.журналы оба возвращают допустимые 3D-векторы, однако, когда я использую p5.Vector.sub(v1, v2), мне возвращается ошибка с надписью «Ошибка типа: Не удается прочитать свойство» sub «неопределенного». Я вспомогательную функцию, возможно, путаю с чем-то другим? Я включил изображение моего вывода об ошибке. Я не уверен, почему программа считывает их как неопределенные, когда я получаю значения для них в console.log. Спасибо вам за любой совет
Комментарии:
1. Ошибка в том, что вы говорите, что
p5.Vector
это ничего не значит, поэтому вызовp5.Vector.whatever()
никогда не может увенчаться успехом. Не то чтобы ваши аргументы были плохими. Итак: проверьтеp5
, действительно ли существует в области видимости?
Ответ №1:
По словам автора react-p5-wrapper
здесь, в этом выпуске
p5, который передается в модуль, не совпадает с глобальным p5, который вы традиционно получаете с тегом сценария. Чтобы получить доступ к определенным вещам с помощью этого пакета (из-за самого модуля узла p5), вам необходимо использовать p5.constructor.[что-то]
В основном используйте p5.constructor.Vector.sub(this.position, ball.position)
в вашем случае.
Комментарии:
1. Вы правы, в этом-то и была проблема! Добавление p5.конструктор полностью устранило ошибку. Спасибо