Hola, esto me está amargando , a ver si alguien me puede ayudar :
Algo extraño me pasa al crear un objeto, le paso dos PVector al constructor y un flotante, y al crear el objeto, cuando trato de sumar el float a el valor x de un PVector, se actualiza el valor de otro PVector… Mejor ver el ejemplo:
Codigo principal:
Menu menu;
PVector a,b;
float c = 150*4;
void setup() {
size(displayWidth, displayHeight, P3D);
a = new PVector(200,height-175);
b = new PVector(600,height);
menu = new Menu (a,b,c);
}
void draw() {
background(200,200,0);
menu.display();
}
La clase:
class Menu{
PVector esquina1, esquina2, limiteY;
Menu(PVector a, PVector b, float c){
esquina1 = a;
esquina2 = b;
println("Me llega: \n a: " + a + "\n b: " +b + "\n c: " + c);
limiteY = a;
println("Aqui, las cosas valen: \n esquina1: " + esquina1 + "\n esqina2: "
+esquina2 + "\n limiteY: " + limiteY);
println("Opero: \n limiteY.x: " + limiteY.x + " + c: "
+ c + " = " + (limiteY.x+c));
limiteY.x = (limiteY.x+c);
println("Y por último: \n esquina1: " + esquina1 + "\n esqina2: "
+esquina2 + "\n limiteY: " + limiteY);
}
void display(){
rectMode(CORNERS);
rect(esquina1.x,esquina1.y,esquina2.x,esquina2.y);
}
}
Pero bueno, lo interesante está aquí, la parte que no entiendo:
Menu(PVector a, PVector b, float c){
esquina1 = a;
esquina2 = b;
limiteY = a;
limiteY.x = (limiteY.x+c);
}
Y obtengo estos valores:
Me llega:
- a: [ 200.0, 849.0, 0.0 ]
- b: [ 600.0, 1024.0, 0.0 ]
- c: 600.0
Aqui, las cosas valen:- esquina1: [ 200.0, 849.0, 0.0 ]
- esqina2: [ 600.0, 1024.0, 0.0 ]
- limiteY: [ 200.0, 849.0, 0.0 ]
Opero:- limiteY.x: 200.0 + c: 600.0 = 800.0
Y por último:- esquina1: [ 800.0, 849.0, 0.0 ]
- esqina2: [ 600.0, 1024.0, 0.0 ]
- limiteY: [ 800.0, 849.0, 0.0 ]
My pregunta es ¿por qué la variable esquina1 actualiza su valor cuando le sumo un valor a la variable limiteY?
Gracias por leer y ayudar