We are about to switch to a new forum software. Until then we have removed the registration on this forum.
hI.. i am begginer in processing, and I had a bug try to run these code.. the goal is simple assign the value of the wid od the shape to become te hei. and viceverse, swap the values right.. but whe i try to run the code and RIGHT CLICK on the saphe I feel dissapointed because the shape seems to be turns in both sides but i onli like that the shape change of orientation/.
best regards from mexico.
Jesus.
moveBox box;//declare de object
void setup(){
size(500,500);
rectMode(RADIUS);//de esta forma se consigue mover el cuadro desde el centro del mismo.
box =new moveBox(100,100,20,50);
}
void draw(){
background(0);
box.display();
box.turn();
box.move();
}
class moveBox {
float px;//posicion en x
float py;//posicion en y
int wid;//ancho del bloque
int hei;//largo del bloque
float xoffset=0.0;//es es para que cuando hagamos click en el cuadro lo tome desde ahi y no traslade la cordenada a un punto no deseado antes de mover el mouse
float yoffset=0.0;
int t;//esto fija solamente la transparencia del objeto
int s;//esto es para colorear la linea de contorno del objeto al moverlo
moveBox(float PX, float PY, int WID, int HEI) {//constructor
px=PX;//parametros que se podran alterar para cada objero
py=PY;//
wid=WID;//ancho
hei=HEI;//largo
}
void display() {//metodo que muestra el objeto en pantalla con los atributos deseados
stroke(s);
fill(255, 255, 0, t);
rect(px, py, wid, hei);
}
void move() {//metodo para mover el objeto con las condiciones de que solo al estar dentro del cuadro este puede moverse con click
if (mouseButton==LEFT&&(mouseX>px-wid)&&(mouseX<px+wid)&&
(mouseY>py-hei)&&(mouseY<py+hei)) {
px=mouseX-xoffset;//al hacer click la coordenada x de la figura se resta de 0 para evitar movimiento no deseado
py=mouseY-yoffset;// igual pero con y
s=255;
t=100;
}
else {
xoffset=mouseX-px;//al soltar el click, la figura permanece en las coordenadas que el mouse tiene y evita movimiento no deseado
yoffset=mouseY-py;//igual pero con coordenada y
t=250; //cambiar de transparencia a color opaco
s=0;//cambiar el contorno de la figura
}
}
void turn(){
if (mouseButton==RIGHT&&(mouseX>px-wid)&&(mouseX<px+wid)&&
(mouseY>py-hei)&&(mouseY<py+hei)){
wid=wid+hei;//algoritmo para intercambiar los valores entre wid y hei
hei=wid-hei;
wid=wid-hei;
}
}
}
Answers
(duplicate thread deleted)
delete the box.turn() from the draw() loop (line 12)
add at the bottom (outside of the box class)
See To newcomers in this forum: read attentively these instructions
mousePressed() is only called once for each mouse press.
the mouseButton flag is true as long as it's pressed.
if you just check the mouseButton flag then it'll be true 60 times a second, hence the flipping back and forth.