This site requires JavaScript, please enable it in your browser!
Greenfoot back
hdavid
hdavid wrote ...

2018/6/3

Alle Objekte einer Klasse aufeinmal neu platzieren/bewegen

hdavid hdavid

2018/6/3

#
Hallo, wie kann man mit dem Befehl setLocation() alle Objekte einer Klasse bewegen. Ich habe das Problem, dass ich momentan nur dass Objekt mit den geringsten x- und y-werten mit setLocation neu platziere, jedoch möchte ich alle Objekte aus der Klasse gleichzeitig bewegen. Habe bis jetzt nichts dazu im Internet gerfunden.
Super_Hippo Super_Hippo

2018/6/3

#
Wo möchtest du sie hin platzieren und wo soll der Code stehen? (In der Welt, in der sich die Objekte befinden, in der Klasse der Objekte, in einer anderen Actor Unterklasse, …) Was schaut dein Code momentan aus, mit dem du das Objekt mit den niedrigsten X und Y Werten verschiebst?
hdavid hdavid

2018/6/3

#
Die Objekte sind bereits in der Welt platziert. Mein momentaner Code besteht dafür eig nur aus setLocation...: private void aenderBricks() { if (Ball.lvl == 3) { if (Ball.ABaktiv == true) { setLocation(getX(), getY() + 38); Ball.ABaktiv = false; } } } Ich möchte damit bezwecken, dass in meinem Break-Out Spiel im schwierigsten Lvl (Lvl 3) die Bricks (Blöcke), nach einer gewissen Zeit immer weiter runterkommen und die oberste Reihe neu gesetzt wird (wobei das bis jetzt kein Problem dasrtellt). Achso das Ball.Abaktiv ist nur da damit es nur einmal nach einer gewissen Zeit ausgeführt wird.
Super_Hippo Super_Hippo

2018/6/3

#
Falls "Ball" die Ball-Klasse ist und 'ABaktiv' eine statische Variable in dieser Klasse, dann ist es kein Wunder, dass es nur einmal für einen Block ausgeführt wird. Du könntest es von der Welt steuern, dann sähe es so aus:
for (Brick b : getObjects(Brick.class))
{
    b.setLocation(b.getX(), b.getY()+38);
}
hdavid hdavid

2018/6/3

#
Ok danke, programmiere erst seid kurzem, deshalb sind meine Kenntnisse noch nicht so gut. Wenn ich versuche es mit deinem Beispiel aus der Welt zu steuern kommt die Fehlermeldung: " ... Java.lang.Object cannot be converted to Brick".
danpost danpost

2018/6/3

#
for (Object obj : getObjects(Brick.class))
{
    Brick b = (Brick)obj;
    b.setLocation(b.getX(), b.getY()+38);
}
hdavid hdavid

2018/6/3

#
Danke.
danpost danpost

2018/6/3

#
hdavid wrote...
Danke.
Bitte.
Super_Hippo Super_Hippo

2018/6/5

#
Mit der Version 3.1.0 klappt es auch ohne den Umweg.
You need to login to post a reply.