Hallo liebe Community,
ich habe ein kleines Problem, bei dem ich nicht weiter komme!
Ich habe mich an den Versuch gewagt, mir meine eigene 3D-Welt erschaffen zu wollen.
Zum einen, könnt ihr mich gerne auf etwagige Dinge aufmerksam machen, die ich offensichtlich falsch
verstanden habe...
Mein explizites Problem besteht allerdings in der Codezeile
Ich hab hier mal die Zusammenhänge gepostet.
Das Problem ist, dass sich die vertices meines Objektes p, das ich der Funktion render() übergeben habe genau dann auch ändern, sobald ich die meines neu erstellten Objektes o ändere. :cry:
Es scheint als ob jedes erstellte Objekt nicht die (so wie ich mir gedacht habe) eigenen Variablen mit erstellt und darin abspeichert und auch wieder daraus abruft, sondern irgendwie, dass global alle Objekte auf ein und dieselben Variablen zugreifen, was ich nicht will. ???:L
Ich würde mich freuen, wenn mir das einer bereit ist, meinen Denkfehler zu beseitigen :bloed:
ich habe ein kleines Problem, bei dem ich nicht weiter komme!
Ich habe mich an den Versuch gewagt, mir meine eigene 3D-Welt erschaffen zu wollen.
Zum einen, könnt ihr mich gerne auf etwagige Dinge aufmerksam machen, die ich offensichtlich falsch
verstanden habe...
Mein explizites Problem besteht allerdings in der Codezeile
Code:
setObject_Vertix(o, i, transformation.getVertix());
Ich hab hier mal die Zusammenhänge gepostet.
Das Problem ist, dass sich die vertices meines Objektes p, das ich der Funktion render() übergeben habe genau dann auch ändern, sobald ich die meines neu erstellten Objektes o ändere. :cry:
Es scheint als ob jedes erstellte Objekt nicht die (so wie ich mir gedacht habe) eigenen Variablen mit erstellt und darin abspeichert und auch wieder daraus abruft, sondern irgendwie, dass global alle Objekte auf ein und dieselben Variablen zugreifen, was ich nicht will. ???:L
Ich würde mich freuen, wenn mir das einer bereit ist, meinen Denkfehler zu beseitigen :bloed:
Java:
public class Object{
int id;
Vertix[] vertices;
String type;
Vektor nullVektor;
int value;
int priority;
public Object(int id, Vertix[] vertices, Vektor nullVektor, String type, int value, int priority){
this.id = id;
this.vertices = vertices;
this.nullVektor = nullVektor;
this.type = type;
this.value = value;
this.priority = priority;
}
public Object(Object o){
if(o == null) think();
else{
this.id = o.getID();
this.vertices = o.getVertices();
this.nullVektor = o.get_nullVektor();
this.value = o.getValue();
this.type = o.type;
this.priority = o.getPriority();
}
}
public Object(){
}
public void think(){
}
}
//-------------
public Object render(Object p, Matrix View, Matrix Projection){
Operationen3D d3 = new Operationen3D();
Object o = new Object(p);
Matrix transformation, t1, world = new Matrix();
for(int i = 0; i < p.getVertices().length; i++){
world = d3.Translation(p.getVertices()[i].toVector());
t1 = world.transform(View);
transformation = t1.transform(Projection);
//ich weiß, dass mein Problem in dieser Methode liegt und damit wahrscheinlich darin,
//wie ich meine erstellte Klasse Object auffasse...
setObject_Vertix(o, i, transformation.getVertix());
}
return o;
}
public void setObject_Vertix(Object o, int i, Vertix vertix){
o.getVertices()[i] = vertix;
}
Zuletzt bearbeitet: