Я кодирую приложение для рисования, в котором я использую функции конструктора, мой код - попытаться заставить шестиугольник отображаться как инструмент рисования. Моя проблема в том, что когда я пытался связать его с другой функцией-конструктором, это выдает ошибку
Hexagon.js:27 Uncaught TypeError: Cannot read property 'value' of undefined
at HexagonTool.draw (Hexagon.js:27)
at draw (sketch.js:53)
at e.d.redraw (p5.min.js:32)
at e.<anonymous> (p5.min.js:31)
.value () не работает как функция-конструктор? мой код разделен, поэтому все функции конструктора разделены, они связаны с эскизом и файлом html, я могу опубликовать больше кода из других областей, чтобы помочь разобраться, если это необходимо. Код ниже:
function HexagonTool() {
//set an icon and a name for the object
this.icon = "assets/shapes.jpg";
this.name = "shapes";
var Hexagon;
var HexagonSize;
var HexagonSizeSlider;
var nHexagonSlider;
function preload() {
Hexagon = loadImage('assets/Hexagon.png');
}
function setup() {
HexagonSizeSlider = createSlider(5, 60, 20);
HexagonSizeSlider.parent("#sizeOfHexagonControl");
nHexagonSlider = createSlider(1, 25, 5);
nHexagonSlider.parent("#numberOfHexagonsControl");
}
this.draw = function() {
if (mouseIsPressed) {
for (var i = 0; i < nHexagonSlider.value(); i++) {
var HexagonSize = HexagonSizeSlider.value();
var HexagonX = random((mouseX - HexagonSize / 2) - 25, (mouseX - HexagonSize / 2) + 25);
var HexagonY = random((mouseY - HexagonSize / 2) - 25, (mouseY - HexagonSize / 2) + 25);
image(Hexagon, HexagonX, HexagonY, HexagonSize,
HexagonSize);
}
}
}
}