Hi, can you help me with this code please?
I want to make program with OpenGL that shows up objects and if you click with mouse it will
show another one.
But it is showing only first two, but other not. HERE IS THE CODE:
import processing.opengl.*;
float a;
int value = 0;
PImage cube;
PImage cube2;
PImage sphere;
PImage sphere2;
PImage backgroundImg;
void setup() {
fullScreen(OPENGL);
fill(255, 255);
noStroke();
smooth();
noCursor();
cube = loadImage("ANY IMAGE");
cube2 = loadImage("ANY IMAGE");
sphere = loadImage("ANY IMAGE");
sphere2 = loadImage("ANY IMAGE");
}
void draw() {
background(127);
PShape globe;
PShape box;
PShape globe2;
PShape box2;
a += 0.01;
lights();
globe = createShape(SPHERE, 250);
globe.setTexture(sphere);
globe2 = createShape(SPHERE, 250);
globe2.setTexture(sphere2);
box = createShape(BOX, 250);
box.setTexture(cube);
box2 = createShape(BOX, 250);
box2.setTexture(cube2);
translate(width/2, height/2);
scale(-1, -1);
rotateX(mouseY * 0.01);
rotateY(mouseX * 0.01);
text(value, 50, 50);
if(value == 0) {
shape(box);
}
if(value == 1) {
shape(box2);
}
if(value == 2) {
shape(globe);
}
if(value == 3) {
shape(globe2);
}
}
void mouseClicked() {
if(value >=3) {
value = 0;
}else {
if(value ==0) {
value = value + 1;
}
}
}
Thank You for Reply. =]
1 Like
Sorry, I made a mistake here:
void mouseClicked() {
¤ ¤ ¤
if(value >=3) {
value = 0;
}else {
if(value ==0) { //HERE
value = value + 1;
}
}
}
error was there: if NUMBEROFCLICKS is 0 then add 1
but when it is 1 it cannot be more because it must be zero again to be 1.
there is the right code:
void mouseClicked() {
if(value >=3) {
value = 0;
}else { // Do it anyway
value++;
}
}
And because I am czech i have full code for you =]
import processing.opengl.*;//vložení knihovny OpenGL
int Objects = 4; // Kolik je objektů
//----------------------------------------------------------
PImage cube;
PImage cube2; //Vytvoření proměnných pro textury objektů
PImage sphere;
PImage sphere2;
//----------------------------------------------------------
float a; //Pro rotaci objektů
int value = 0;//Pro počítání stisknutí myši
void setup() {
fullScreen(OPENGL);//inicializace okna v režimu renderování OpenGL
noStroke();//Objekty bez okrajů
smooth();//Hladké renderování
noCursor();//zobrazení bez myši
//--------------------------------------------------------------------------------------
cube = loadImage("");
cube2 = loadImage(""); //Přidání textur k objektu
sphere = loadImage("");
sphere2 = loadImage("");
//--------------------------------------------------------------------------------------
}
public void draw() {
background(127); //Barva pozadí
a += 0.01; //Proměnná pro rotaci objektů
lights(); //Renderování světla
//------------------------------------------------------------
PShape globe;
PShape box;
PShape globe2;
PShape box2;
globe = createShape(SPHERE, 250);
globe.setTexture(sphere);
globe2 = createShape(SPHERE, 250);
globe2.setTexture(sphere2); //Definování objektů
box = createShape(BOX, 250);
box.setTexture(cube);
box2 = createShape(BOX, 250);
box2.setTexture(cube2);
//------------------------------------------------------------
translate(width/2, height/2);//Vycentrování objektů
scale(-1, -1);//Převrácení osy X a Y pro rotaci
rotateX(mouseY * 0.01);//samotná rotace osy X
rotateY(mouseX * 0.01);//samotná rotace osy Y
//------------------------------------------------------------//
if(value == 0) {
shape(box);
}
if(value == 1) {
shape(box2);
} //Výběr objektu a jeho zobrazení
if(value == 2) {
shape(globe);
}
if(value == 3) {
shape(globe2);
}
//------------------------------------------------------------//
}
void mouseClicked() {
if(value >=(Objects - 1)) { //Pokud je počet stisknutí myši větší jak 3, tak:
value = 0; //----resetování počtu stisknutí myši
}else { //Když ne tak:
value++; //----přidá k počtu stisknutí myši 1
}
}
1 Like