You are not logged in.

  • Login

1

Wednesday, April 28th 2010, 7:19pm

Objekt entgegengesetzt bewegen

Hi

folgende Klasse ist vorgegeben:

Java Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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:

Java Quellcode

1
2
3
4
5
6
public void move() {
 
        position.add(new Vertex(1,0));
 
 
    }


Die add Methode:

Java Quellcode

1
2
3
4
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;

Java Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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.

2

Friday, April 30th 2010, 6:46am

Hi

folgende Klasse ist vorgegeben:

Java Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
public class GameWindow extends JFrame {
 
public void move() {
        boolean bewegung = true;
        if(bewegung == true) {
        position.add(new Vertex(1,1));
        }
        else
            reverse();
 
    }
    ...


Funktioniert nicht so ganz.



Ohne mir den Code näher angeschaut zu haben fällt natürlich sofort der von mir zitierte Codeteil auf.
Die legst einen boolean an, setzt ihn auf true und überprüfst dann ob er auch true ist :?: Er wird wohl immer true sein^^

Außerdem ist 'funktioniert nicht so ganz' eine etwas dürftige Fehlerbeschreibung ;)

This post has been edited 1 times, last edit by "F0kus" (Apr 30th 2010, 9:17am)


Social bookmarks