Я только что сделал работу с генератором изображений с файлами PNG. На данный момент он разделен на 3 категории (фоны, объекты & текстов). Теперь они все объединены, и каждый щелчок мыши рандомизирует эти PNG.Функция Toggle не работает в обработке (ControlP5)
Я сделал три переключателя, где вы могли выбрать, чтобы показать либо фон, и объекты сверху, все или все отдельно. Всякий раз, когда я запускаю эскиз, он показывает «серый» фон, но когда я использую переключатели, он ничего не показывает или показывает мерцающее изображение, где щелчок мыши не может использоваться для перехода к следующему изображению , Кажется, я не могу найти проблему. Надеюсь, вы можете помочь. :)
import controlP5.*;
boolean showBackground = false;
boolean showObjects = false;
boolean showGrids = false;
ControlP5 cp5;
PImage[] myImageArray = new PImage[8];
PImage[] myImageArray2 = new PImage[15];
PImage[] myImageArray3 = new PImage[15];
void setup() {
size(1436, 847);
background(211, 211, 211);
for (int i=0; i<myImageArray.length; i++) {
myImageArray[i] = loadImage ("o" + i + ".png");
myImageArray2[i] = loadImage ("g" + i + ".png");
myImageArray3[i] = loadImage("b" + i + ".jpg");
cp5 = new ControlP5(this);
// create a toggle and change the default look to a (on/off) switch look
cp5.addToggle("showBackground")
.setPosition(40, 250)
.setSize(50, 20)
.setValue(true)
.setMode(ControlP5.SWITCH);
cp5.addToggle("showObjects")
.setPosition(40, 400)
.setSize(50, 20)
.setValue(true)
.setMode(ControlP5.SWITCH);
cp5.addToggle("showGrid")
.setPosition(40, 600)
.setSize(50, 20)
.setValue(true)
.setMode(ControlP5.SWITCH);
}
display();
}
void display() {
image(myImageArray3[(int)random(myImageArray.length)], 0, 0, 1436, 847); // b
image(myImageArray2[(int)random(myImageArray.length)], 0, 0, 1436, 847); // g
image(myImageArray[(int)random(myImageArray.length)], 0, 0, 1436, 847); // o
}
void mousePressed() {
display();
}
void draw() {
pushMatrix();
if (showBackground==false) {
image(myImageArray3[(int)random(myImageArray.length)], 0, 0, 1436, 847); // b
} else {
background(211, 211, 211);
}
if (showGrids==false) {
image(myImageArray2[(int)random(myImageArray.length)], 0, 0, 1436, 847); // g
} else {
background(211, 211, 211);
}
if (showObjects==false) {
image(myImageArray[(int)random(myImageArray.length)], 0, 0, 1436, 847); // o
} else {
background(211, 211, 211);
}
popMatrix();
}
Большое спасибо! Это работает, у меня просто есть вопрос о коде, поэтому я полностью понимаю, здесь он загружает объекты, но что первое предложение точно говорит и ссылается на (int i = 0; i
Не стесняйтесь голосовать и/или отмечать ответ как решение, если оно решит проблему , Что касается случайного, попробуйте изменить значение '' 'currentImage''' для использования' '' random() '' ', но имейте в виду длины массивов, чтобы вы не выходили за границы :) –