tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
19
ZUGRIFFE
926
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Sternchen8520 Sternchen8520 ist offline Mitglied
    Registriert seit
    Mar 2011
    Beiträge
    12
    Hallo,

    ich hab grad ein Pfojekt, indem ich einen Frogger-Clon schreiben muss.
    Soweit klappt alles, nur komm ich nicht auf den entscheidenden grünen Zweig, wie ich die Autos in verschiedenem Abstand wieder hole (oder überhaupt erstmal wiederhole).
    Habt ihr vielleicht eine Idee, wie ich das wo anstellen kann?

    Hier mein bisheriger Code:
    Class Frogger:
    Code :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    
    package Frogger;
     
    import java.applet.Applet;
    import java.applet.AudioClip;
    import java.awt.*;
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
    import java.net.URL;
     
     
    public class Frogger extends Applet implements Runnable
    {
            /**
             * 
             */
            private static final long serialVersionUID = 1L;
     
            
            Thread th;
            static Image Car1, Car2, Car3, Car4, Frosch, Background, gameover, win;
            String Cars;
            
            private Image dbImage;      //Doppelpuffer
            private Graphics dbGraphics;
            
            private Frog Frog;
            private Car Car;
            
            static AudioClip traffic;
            static AudioClip crash;
            static AudioClip quack;
            static AudioClip winsound;
            
            
            
            
            public void init()
            {
                
                setSize(801, 641);
                
                //Bilddaten laden
                setBackground(Color.black);
                Background = getImage(getCodeBase(), "Frogger/pictures/lane.gif");
                Frosch = getImage(getCodeBase(), "Frogger/pictures/frog.gif");
                Car1 = getImage(getCodeBase(), "Frogger/pictures/car10.gif");
                Car2 = getImage(getCodeBase(), "Frogger/pictures/car11.gif");
                Car3 = getImage(getCodeBase(), "Frogger/pictures/car12.gif");
                Car4 = getImage(getCodeBase(), "Frogger/pictures/car13.gif");
                gameover = getImage(getCodeBase(), "Frogger/pictures/gameover.gif");
                win = getImage(getCodeBase(), "Frogger/pictures/win.gif");
                
                
                //Sounddaten laden
                crash = getAudioClip(getCodeBase(), "Frogger/sounds/crash3.wav");
                traffic = getAudioClip(getCodeBase(), "Frogger/sounds/traffic.wav");
                quack = getAudioClip(getCodeBase(), "Frogger/sounds/frog.wav");
                winsound = getAudioClip(getCodeBase(), "Frogger/sounds/applause.wav");
                
                //Verbindungen zu anderen Klassen
                Frog = new Frog();
                Car = new Car();
                addKeyListener((KeyListener) Frog);
                
        
            }
            
            public void start()
            {
                th = new Thread(this);
                th.start();
            }
            
            
            public void run() 
            {
                
                Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
                
                traffic.loop();
                
                
                while(true)
                {   
                    Car.Car1_move();
                    Car.Car2_move();
                    Car.Car3_move();
                    Car.Car4_move();
                    
                    
                    try
                    {
                        repaint();
                        Thread.sleep(10);
                    }
                    catch(InterruptedException ex)
                    {
                        //do nothing
                    }
                Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
                
                }
                
            }
            
            
            
            public void stop()
            {
                th.stop();
            }
            
            
            
            public void paint(Graphics g)
            {
                g.drawImage(dbImage, 0, 0, this);
            }
            
            public void update(Graphics g)
            {
                if (dbImage == null) 
                {
                    dbImage = createImage(this.size().width, this.size().height);
                    dbGraphics = dbImage.getGraphics();
                }
            
     
                if(Frog.goal() != true)
                    {
                    dbGraphics.drawImage(Background, 0, 40, this);
                    dbGraphics.drawImage(Frosch, Frog.pos_x, Frog.pos_y, this);
                    dbGraphics.drawImage(Car1, Car.x_pos_oben_1, Car.y_pos_oben_1, this);
                    dbGraphics.drawImage(Car2, Car.x_pos_oben_2, Car.y_pos_oben_2, this);
                    dbGraphics.drawImage(Car3, Car.x_pos_unten_1, Car.y_pos_unten_1, this);
                    dbGraphics.drawImage(Car4, Car.x_pos_unten_2, Car.y_pos_unten_2, this);
                    }
                else
                    {
                    dbGraphics.drawImage(win, 40, 40, this);
                    }
                
                
                
                paint(g);
            }
            
     
    }

    Class Frog:
    Code :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    
    package Frogger;
     
    import java.applet.AudioClip;
    import java.awt.*;
    import java.awt.event.*;
     
    public class Frog implements KeyListener
    {
        
        public int pos_x = 359;     //aktuelle koordinaten des Frosches
        public int pos_y = 573;
        
        public int speed_x;     //geschwindigkeit des Frosches
        public int speed_y;
        
        private final int goal = 45;    //Start und Ziel festlegen
        private final int start = 359;
        
        private final int up_out = 88;  //Spielfeldbegrenzungen
        private final int down_out = 593;
        private final int left_out = 0;
        private final int right_out = 718;
        
        Car Car;
        
        
        public void keyPressed(KeyEvent e)
        {
            int key = e.getKeyCode();
            
            if(key == KeyEvent.VK_UP)
            {
                Frogger.quack.play();
                if((pos_y -= 48) <= up_out)
                {
                    pos_y = 40;
                }
                else
                pos_y -= 48;
            }
            
            if(key == KeyEvent.VK_DOWN)
            {
                Frogger.quack.play();
                if((pos_y += 48) >= down_out)
                {
                    pos_y = 593;
                }
                else
                pos_y += 48;
            }
            
            if(key == KeyEvent.VK_RIGHT)
            {
                Frogger.quack.play();
                if((pos_x += 83) >= right_out)
                {
                    pos_x = 718;
                }
                else
                pos_x += 83;
            }
            
            if(key == KeyEvent.VK_LEFT)
            {
                Frogger.quack.play();
                if((pos_x -= 83) <= left_out)
                {
                    pos_x = 0;
                }
                else
                pos_x -= 83;
            }
        
            
        }
     
        public void keyReleased(KeyEvent e)
        {
            //do nothing
        }
     
        public void keyTyped(KeyEvent e)
        {
            //do nothing
        }
     
        
        
        
        
        public boolean goal()
        {
            if (pos_y <= 40)
            {
                Frogger.traffic.stop();
                Frogger.winsound.play();
                return true;
            }
            
            return false;
        }
        
    }

    Class Car:
    Code :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    
    package Frogger;
     
    import java.awt.Graphics;
    import java.awt.Image;
    import java.net.URL;
     
    public class Car 
    {
        public int x_pos_oben_1 = -170; 
        public int x_pos_oben_2 = -170;
        public int x_pos_unten_1 = 801; 
        public int x_pos_unten_2 = 801;
        public int y_pos_oben_1 = 120;
        public int y_pos_oben_2 = 220;
        public int y_pos_unten_1 = 360; 
        public int y_pos_unten_2 = 480;
        public int v_oben_1 = 4;
        public int v_oben_2 = 2;
        public int v_unten_1 = 3;
        public int v_unten_2 = 2;
        Image []car1;
        Image []car2;
        Image []car3;
        Image []car4;
        Image car1_move, car2_move, car3_move, car4_move;
        Image Auto;
        
        
        
        public void Car1_move()
        {
            x_pos_oben_1 += v_oben_1;
        }
        
        public void Car2_move()
        {
            x_pos_oben_2 += v_oben_2;
        }
        
        public void Car3_move()
        {
            x_pos_unten_1 -= v_unten_1;
        }
        
        public void Car4_move()
        {
            x_pos_unten_2 -= v_unten_2;
        }
     
    }
     

  2. #2
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Hi,

    du hast doch die Positionskoordinaten von den Autos. Zudem hast du noch deine Breite vom Applet. Wenn deine Autos nun nach rechts fahren, dann musst du nur abfragen, ob die X-Position des Autos größer ist, als die Breite des Applets. Fahren die Autos nach links, fragst du ab, ob die X-Position+(Länge des Autos) kleiner ist als 0. (Dafür setzt du noch eine Variable 'width' in deiner Klasse 'Car'.)
    Trifft einer der Fälle zu, dann setzt du die X-Position des Autos auf die X-Anfangsposition zurück und änderst u.U. die Y-Position.

    ps.: Bitte verwende die Java-Code-Tags --> [ java]...[/java]

    Gruß

    Fabio
    Geändert von Fabio Hellmann (07.09.11 um 10:57 Uhr)
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  3. #3
    Sternchen8520 Sternchen8520 ist offline Mitglied
    Registriert seit
    Mar 2011
    Beiträge
    12
    ja, aber es soll ja nicht nur ein neues auto reinkommen, wenn eins rausgefahren is... das wär ein bisschen zu einfach... es sollten auch mal zwei hintereinander kommen usw. wie beim "echten" Frogger halt... Fühl mich grad ein bisschen dämlich
     

  4. #4
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Das kannst du doch per Zufallswert sage, ob 1, 2 oder 3 Autos gleichzeitig reinfahren sollen. Oder weißt du nicht wie du das umsetzen sollst?
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  5. #5
    Sternchen8520 Sternchen8520 ist offline Mitglied
    Registriert seit
    Mar 2011
    Beiträge
    12
    genau das ist mein Problem ich steh grad total aufm schlauch
     

  6. #6
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Vielleicht solltest du dir ersteinmal die grundlegenden Prinzipien von OOP näher ansehen. Da das dein größtes Problem momentan ist.

    Hier zwei Links:
    http://openbook.galileocomputing.de/oop/
    http://www.galileocomputing.de/artikel/gp/artikelID-215

    Als Biespiel habe ich dir auch deine Klasse 'Car' in OOP-Struktur gecoded:
    Code java:
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    
    import java.awt.Image;
     
    public class Car
    {
        private static final int SPEED = 3;
        private final Image img;
        private final int width = 50;
        private final int height = 30;
        private int x;
        private int y;
        
        public Car(Image img) {
            this.img = img;
        }
     
        public void move() {
            x += SPEED; // wenn du nach links fahren willst --> nach rechts: x -= speed;
        }
     
        public void setX(int x) {
            this.x = x;
        }
     
        public int getX() {
            return x;
        }
     
        public void setY(int y) {
            this.y = y;
        }
     
        public int getY() {
            return y;
        }
     
        public int getWidth() {
            return width;
        }
     
        public int getHeight() {
            return height;
        }
     
        public Image getImg() {
            return img;
        }
    }

    Wenn du dann so halbwegs verstanden hast wie OOP funktioniert und dich dann nochmal an dein Projekt setzt, dann wird es dir um einiges leichter fallen.

    Gruß

    Fabio
    Sternchen8520 bedankt sich. 
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  7. #7
    Sternchen8520 Sternchen8520 ist offline Mitglied
    Registriert seit
    Mar 2011
    Beiträge
    12
    dankeschön, dann werd ich mich mal ranmachen
     

  8. #8
    Sternchen8520 Sternchen8520 ist offline Mitglied
    Registriert seit
    Mar 2011
    Beiträge
    12
    also, die Autos fahren jetzt so wie sie fahren sollen. Ich bräuchte vielleicht noch einen kleinen Tipp, was den Crash mit dem Frosch angeht... Wenn ich nur die beiden X-positionen (von den Autos und dem Frosch) mit if abrage passiert nichts, da werd ich wahrscheinlich noch die Höhe der beiden Objekte miteinbinden müssen, nur wie mach ich das?
     

  9. #9
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Du musst das folgendermaßen machen. Dein Auto und Frosch brauchen folgende Eigenschaften/Attribute:
    Code java:
    1
    2
    3
    4
    
    private final int width = 50; // Breite muss angepasst werden
    private final int height = 30; // Höhe muss angepasst werden
    private int x;
    private int y;

    Diese Werte übergibst du an ein Rectangle-Objekt.
    Code java:
    1
    
    Rectangle r = new Rectangle(x, y, width, height);

    So und die Klasse Rectangle stellt uns nun die Methode intersects zur Verfügung, mit der wir abfragen können, ob sich zwei Rectangle-Objekte überschneiden.
    Code java:
    1
    2
    3
    
    if(r.intersects(otherRectangle)) {
       // COLLISION!
    }

    Mehr Infos zu den Methoden und zur Klasse Rectangle findest du hier.

    Gruß

    Fabio
    Sternchen8520 bedankt sich. 
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  10. #10
    Sternchen8520 Sternchen8520 ist offline Mitglied
    Registriert seit
    Mar 2011
    Beiträge
    12
    suuuper, du bist mir ne große hilfe! So viel wollt ich gar nicht wissen Aber vielen vielen dank!
     

  11. #11
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Keine Ursache. Mach ich doch gerne.
    kannst du dann deinen Code oder am besten die Jar-Datei mit allem drum und dran (Bilder, etc.) posten, damit wir das Spiel auch mal spielen können?

    ps.: Schreibst du das Programm für dich zu Hause oder für die Schule/Studium?
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  12. #12
    Sternchen8520 Sternchen8520 ist offline Mitglied
    Registriert seit
    Mar 2011
    Beiträge
    12
    klar mach ich doch gerne, wird allerdings auch noch ein bisschen dauern, weil bis auf das Spiel noch nichts (highscore usw.) läuft!
    Mach das in meiner Ausbildung
     

  13. #13
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Ah ok, alles kla. Erstes Lehrjahr. Anfänge mit Java. Mach doch mal ein Spiel.
    Jaja ich kenn das, da wird man gerne mal ins kalte Wasser geworfen. Ich sahs an meinem ersten Programm mal eben 3 Monate. War aber auch ein wenig umfangreicher und durch die eh nur minderwertigen Erfahrungen war der Programmieraufwand gigantisch.

    Dann noch viel Erfolg. Solltest du nochmal Fragen haben, dann poste sie einfach unter dem Thema wieder.

    Gruß

    Fabio
    Geändert von Fabio Hellmann (09.09.11 um 14:54 Uhr)
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  14. #14
    Sternchen8520 Sternchen8520 ist offline Mitglied
    Registriert seit
    Mar 2011
    Beiträge
    12
    Nur um sicher zu gehen das ich schon wieder was falsch gemacht hab, oder einfach grad nur zu doof bin :
    Classe Crash:
    Code java:
    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
    
    package Frogger;
     
    import java.awt.Rectangle ;
     
    public class crash 
    {
        private Frog Frog;
        private Street Street;
        
        
        public boolean crash() 
        {
            //Objekt "Frosch"
            Rectangle f = new Rectangle(Frog.pos_x, Frog.pos_y, Frog.frog_width, Frog.frog_height);
            
            //Objekt "Straße" (bzw. Auto)
            Rectangle s = new Rectangle(Street.CarPos, Street.y, Street.width, Street.height);
            
            if(f.intersects(s))
            {
                return true;
            }
            
            return false;
        }
     
     
    }

    die bewegung meiner Autos sieht jetzt so aus (ich gestehe, ist nicht komplett aus meinem Kopf entsprungen =)):

    Code java:
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    
    package Frogger;
     
    import java.awt.Rectangle;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
     
    public class Street 
    {
         int y = 0;
         static Integer yc;
         int v = 1;
         int xStart = -170;
         int xEnd = 972;
         int xDistanceToNextCar = 500;
         public int CarPos;
         Random rnd = new Random();
         public int height = 60;
         public int width = 170;
         
         //Listen für Autopositionen und Bilder erstellen:
         List<Integer> carsX = new ArrayList<Integer>();
         List<Integer> carsTypes = new ArrayList<Integer>();
         
         
        public Street(int y, int v, int xStart, int xEnd)
         {
             this.y = y;
             this.v = v;
             this.xStart = xStart;
             this.xEnd = xEnd;
         }
         
         public void createCar() 
         {
             int type = rnd.nextInt(4);
             if(v<0)
             {
                 type += 4;
             }
             carsX.add(xStart);
             carsTypes.add(type);
             xDistanceToNextCar = rnd.nextInt(500) + 400;   //Mindestabstand zum nächsten Auto
         }
         
         public void moveCars() 
         {
             if (carsX.size() == 0) 
             {
                 createCar();
             }
             
             for (int i=0; i < carsX.size(); i++) //Autos bewegen
             {
                 int x = carsX.get(i);
                 x += v;
                 carsX.set(i, x);
                 CarPos = carsX.get(i);
             }
             if (carsX.size() > 0) 
             {
                 int x = carsX.get(0);
                 if ((v < 0 && x < xEnd) || (v > 0 && x > xEnd)) 
                 {
                     carsX.remove(0);
                     carsTypes.remove(0);
                 }
             }
             
             //wenn der mindestabstand erreicht ist, neues Auto fahren lassen
             //Oben:
             if ((v > 0) && ((carsX.get(carsX.size() -1) - xStart) > xDistanceToNextCar))
             {
                 createCar();
             }
             //Unten:
             else if((v < 0) && (xStart -(carsX.get(carsX.size() -1)) > xDistanceToNextCar))
             {
                 createCar();
             }
             
         }
         
         public int getY() 
         {
             return y;
         }
         
         public List<Integer> getXCoordinates() 
         {
             return carsX;
         }
            
         public List<Integer> getCarsTypes() 
         {
         return carsTypes;
         }
         
            
    }

    nur crasht halt nix -.-
    Ich habs schon wieder falsch gemacht stimmts?

    Lg, Jessy

    P.S.: ne, zweites Jahr und ich hab ja eigentlich bis ich hier geschrieben habe, keine Probleme gehabt
     

  15. #15
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Zitat Zitat von Sternchen8520 Beitrag anzeigen
    Nur um sicher zu gehen das ich schon wieder was falsch gemacht hab, oder einfach grad nur zu doof bin
    Also das ist definitiv die falsche Einstellung! Jeder macht Fehler und lernt daraus was. Schließlich sind wir alle nur Menschen.

    Was deinen Code betrifft. Naja... Also... Wenn ich gemein wäre, würde ich behaupten, dass du deine Hausaufgaben nicht richtig gemacht hast (--> Artikel zu OOP durchlesen & verstehen). Da ich das aber nicht bin würde ich das mal darauf zurückschließen, dass ich die OOP selber ewig nicht so richtig verstanden habe.
    Schau dir dazu ruhig auch nochmal meine Klasse ('Car') an. Vielleicht verstehst dus dadurch besser.

    Das Problem bei deinem Code ist das, da du nicht mit Objekten - oder nur sehr wenigen - arbeitest, ist es schwieriger da eine gewisse Programmlogik dahinter zu bekommen. Was du für Objekte brauchst sind folgende:
    • FroggerWindow - erbt von der Klasse 'Applet' und implementiert 'KeyListener', um den Input abzufragen (Applet)
    • Frog - repräsentiert einen Frosch
    • Car - repräsentiert ein Auto
    • CollisionDetector - wird überwachen, ob zwei Objekte kollidieren
    • FroggerCore - ist der Thread, der die Objektpositionen aktuallisiert und den CollisionDetector fragt, ob der Frosch mit einem Auto kollidiert ist (optional, kann auch in FroggerWindow mit implementiert werden)

    Die Objekte Frog und Car musst du - wie ich bereits schon einmal erwähnt habe - folgende Attribute geben:
    Code java:
    1
    2
    3
    4
    
    private final int width = 50;
    private final int height = 20;
    private int x;
    private int y;
    Zudem implementierst du eine Methode 'getBounds()' in den beiden Objekten:
    Code java:
    1
    2
    3
    
    public Rectangle getBounds() {
       return new Rectangle(x, y, width, height);
    }
    Hier mal ein Überblick, was die beiden Objekte Frog und Car an Methoden brauchen:
    • moveLeft()
    • moveUp()
    • moveRight()
    • moveDown()
    • getBounds() : Rectangle
    • update()
    • draw(Graphics2D g)

    Arbeite die paar Punkte ersteinmal ab. Und schau dir wiegesagt nochmal die OOP an (das ist wirklich das A und O bei dem Ganzen). Vielleicht findest du auch jemanden von deinen Kollegen, der dir das Prinzip näher bringen kann.
    Wenn du das dann gemacht hast, reden wir weiter.

    // EDIT: Hier hab eich noch einen sehr guten Link zur OOP gefunden.

    Gruß

    Fabio
    Geändert von Fabio Hellmann (13.09.11 um 09:46 Uhr) Grund: Link zu OOP hinzugefügt
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 12.02.08, 19:26
  2. Antworten: 0
    Letzter Beitrag: 07.08.07, 18:12
  3. Hilfe! Flash Anfänger sucht schnelle Hilfe!
    Von Skydiver2004 im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 02.12.04, 20:26
  4. HILFE! Morgen Arbeit! Anfängerfragen..bitte um Hilfe!
    Von Da Damn Cam im Forum Delphi, Kylix, Pascal
    Antworten: 2
    Letzter Beitrag: 04.10.04, 15:24
  5. Antworten: 8
    Letzter Beitrag: 14.06.04, 10:37