# Objekt entgegengesetzt bewegen



## Nikelodeon (28. Apr 2010)

Hi 

folgende Klasse ist vorgegeben:


```
public class GameWindow extends JFrame {

    JPanel p =new JPanel() {
        public Dimension getpreferredSize() {
            return new Dimension(800,600);
        };
        @Override
        protected void paintComponent (Graphics g) {
            for (GameObject o:os) o.paintMeTo(g);
        };
    };
    final List<GameObject> os = new ArrayList <GameObject>();
    public GameWindow() {
        add(p);
        pack();
        setVisible(true);
        Timer t = new Timer(100, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                for (GameObject o:os) o.move();
                repaint();
            }
        }
        );
        t.start();
    }
    public void addGameObject(GameObject o) {
        os.add(o);
        p.repaint();
    }

}
```

mit folgender Methode lasse ich mein Objekt vorwärts bewegen:


```
public void move() {

        position.add(new Vertex(1,0));
       

    }
```

Die add Methode:


```
public void add(Vertex that) {
        this.x += that.x;
        this.y += that.y;
    }
```

Jetzt möchte ich das das Object sich entgegengesetzt bewegt.

Ich habe folgende Idee;


```
public void move() {
        boolean bewegung = true;
        if(bewegung == true) {
        position.add(new Vertex(1,1));
        }
        else
            reverse();

    }
    
public void reverse() {

        x = 0;
        y = 1;
    }
```

Funktioniert nicht so ganz.


----------



## Marco13 (28. Apr 2010)

Beschreib' mal genauer was da wann passieren soll... bisher sehe ich keinen Grund, warum man nicht einfach
position.add(new Vertex(*-1*,0));
machen sollte...


----------



## Nikelodeon (29. Apr 2010)

Das Objekt (z.B. eine Ellipse) soll sich bis zu einem bestimmten Punkt bewegen.
Z.B. x=500 y=500.

Anschließend soll das Objekt sich durch den Aufruf von reverse() wieder zurück bewegen also
die Bewegungsrichtung soll umgekehrt werden.

Außerdem soll noch eine Klasse erstellt werden welche das Objekt sich um seinen Mittelpunkt drehen 
lässt.

:rtfm: Weiß nicht weiter.

Gruß


----------



## AlexSpritze (29. Apr 2010)

Ahoi, vielleicht eher so?

```
private int x = 1;
private int y = 0;
private int xMax = 500;
private int xMin = 0;
public void move() {

        if(x > xMax || x<xMin)
            reverse();

        position.add(new Vertex(x,y));
    }
    
public void reverse() {

        x = x * -1;
        //y = 1;
    }
```


----------



## Nikelodeon (29. Apr 2010)

Kann nicht gehen da Bedingung nur einmal geprüft wird und zwar am Anfang


----------



## Empire Phoenix (29. Apr 2010)

Dann musste halt bei dir eine Update methode bauen die das regelmäßig überprüft.


----------



## Nikelodeon (30. Apr 2010)

Ihr habt ja mal gar keine Ahnung!
Ganz ehrlich.

Lasst das programmieren lieber sein!

Bindet euch lieber die Schuhe mit einer Schleife.

Bor was für.... egal ich bin raus


----------



## Marco13 (1. Mai 2010)

Phase V


----------



## maki (1. Mai 2010)

Schon wieder einer... und es ist nicht mal Vollmond.

*geschlossen*


----------

