Einzelnen Beitrag anzeigen
Alt 09.02.2010, 23:02   #10 (permalink)
Steev
Stammbenutzer
Team JCupGames
Kilobyte
 
Benutzerbild von Steev
 
Registriert seit: 24.05.2007
Beiträge: 378
Abgegebene Danke: 3
Erhielt 35 Danke für 35 Beiträge
Hi bernii,

Zitat: bernii
Beitrag anzeigen
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
11
//Springen
        radius += z_speed;
 
            if(radius < 5)
            {
                z_speed *= -1;
            }
            if(radius > 11)
            {
                z_speed *= -1;
            }
Was ist das denn?
Die Z-Position sollte meiner Meinung nach erst bei der Renderung der Szene umgerechnet werden, also etwa so:
Java Code: Quelltext in neuem Fenster öffnen
1
2
double zradius = radius + (z_pos / 2.); // Die Position auf der Z-Achse wird mit in den Radius eingerechnet (==> Tiefe)
g.fillOval((int) (x_pos - (zradius / 2.)), (int) (y_pos - (zradius / 2.)), (int) zradius, (int) zradius);

Zu deinem Plattenproblem:
Ich würde eine Klasse Platte machen, die zwei Rectangle-Objekte behinhaltet. Für jede Platte eine.
Dann würde ich eine Methode tellPosition oder so machen, die du bei jeder Ballbewegung aufrufst.
In dieser Methode prüst du dann einfach ab, auf welcher Seite der Platte sich der Ball befindet (Rectangle.contains[...]) und prüst dann, ob die Z-Position des Balles kleiner oder gleich der Z-Position der Platte ist. Wenn dass der Fall ist, so wird eine Methode "tellHit" aufgerufen die dann den "Aufschlag" des Balles auf der entsprechenden Plattenhälfte handelt. Die Platte, auf der sich der Ball befindet kannst du ja als Parameter übergeben.
Den Ball würde ich ebenfalls als eigenes Objekt definieren.

PS: Netz nicht vergessen

Gruß
Steev
__________________
Die Erkenntnis von Heute kann ein Kind des Irrtums von Gestern sein.
Steev ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten