Bitte um Hilfe bei Animationen

Status
Nicht offen für weitere Antworten.

Titanpharao

Bekanntes Mitglied
Hallo,

da im Anfänger Bereich mir keiner Antwortet, dachte ich frage ich nochmal "fachspezifisch".

Ich habe mein Spiel, was schon sehr groß ist auf einem JFrame aufgebaut. Auf dem befinden sich 4 JPanels. Das ganze ist ein Null-Layout. Damit ich die Position der einzelnen Labels und Buttons exakt setzten kann.


1.Ebene/JPanel:Spielwelt
2.Ebene/JLabel:Spieler
3.Ebene/JPanel:HUD

So ist das in etwa aufgebaut. Das HUD liegt auch immer schön über den andern Panel. Jetzt ist das Problem, das ich auf der Spielwelt auch gern ein "Animiertes GIF" mit z.b. Wellengang haben möchte.
ich linke mal ein Bild rein...

http://img441.imageshack.us/my.php?image=gamexg9.jpg

Wie man sieht, müste beim gelben Rahmen, noch das HUD sein. Es funktioniert auch alles wunderbar. Nur sobald ein Animiertes Bild drunter liegt, "flimmert" das durch. Sicher wegen der "repaint()" Methode, die immer bei Gifs aufgerufen wird.
Kann ich das irgendwie verhindern?
Oder das HUD Panel irgendwie "unüberschreibbar" machen? Bitte um Hilfe, will nicht sone triste Spielwelt haben.

Mgf Oli
 
G

Gast

Gast
Es könnte helfen, wenn du dein HUD nicht in das Fenster einfügen, sondern es auf das Panel legst. Sonst weiß das untere Panel nicht, dass da noch eins ist und übermalt es einfach. Das obere Panel muss sich dann neu zeichnen->so entsteht dein Flimmern.
Wenn du das HUD zu dem unteren Panel hinzufügst und darauf positionierst, müsste es gehen. Eventuell musst du dann noch in der paint- Methode des unteren Panels dafür sorgen, dass es die Stelle tatsächlich nicht übermalt. Ich kann aber nicht versprechen, dass das hilft (warum? Siehe unten)

Insgesamt klingt das aber ziemlich unperformant. Für Spiele nimmt man im Normalfall kein Swing/AWT, weil bei diesen Packeten die GUI- Verarbeitung in einem eigenen Thread läuft. Die Spiellogik braucht dann noch einen Thread, was Performanceprobleme hervorruft. Deshalb setzt man im Normalfall Packete ein, mit denen eine echte Spielschleife möglich ist (z.B. JMonkeyEngine). Was eine Spielschleife ist, erklärt der Macher der JME unter http://www.jmonkeyengine.com/wiki/doku.php?id=main_game_loop

Ich hoffe, dass hilft.
 

Titanpharao

Bekanntes Mitglied
Probiers mal aus...danke :)

Ich möchte aber gern Spiel und Aufbau dahinter verstehen. ich denke wenn man nur eine Bibliothek nimmt schaut man sich nicht genau an, wie es funktioniert.
 

Titanpharao

Bekanntes Mitglied
Hm...würde vielleicht so gehen. Aber das problem ist das P2 sich immer im Fenster bewegt. Wobei P1 "star" auf dem Fenster liegt. Also wenn ich jetzt P1 auf P2 setze verschiebt sich das mit...

Aber es geht so. Nur halt jetzt wird P1 immer auf P2 mitgerückt....das ganz schlecht icon_wink.gif Vielleicht die beiden nochmal in ein Panel packen?
 

Campino

Top Contributor
1) Das Problem ist, dass du den Aufbau, den ein Spiel normalerweise hat mit Java- Hausmitteln nicht hinbekommen wirst. Dazu musst du eine Engine nehmen. Mit JME versteht man das Konzept der Spielschleife eigentlich auch, weil man doch noch ziemlich viel selber programmieren muss.

2) Du hast ein Panel Spielwelt, dass ist unbeweglich. Ein Panel P2, dass ist beweglich. Also musst du P2 in Spielwelt einfügen und anschließend P2 bewegen. Ansonsten erklär mal genauer, was du machst.
 

Wildcard

Top Contributor
Das Problem ist, dass du den Aufbau, den ein Spiel normalerweise hat mit Java- Hausmitteln nicht hinbekommen wirst.
Ach? Und besagte Engine ist dann mit Perl geschrieben oder wie ist diese Aussage zu verstehen? :autsch:
 

Titanpharao

Bekanntes Mitglied
Also ich komme ziemlich gut damit hin. Ist eigentlich schon fast fertig. Nur halt das überlagern der Animationen über das HUD.

Die Spielwelt ist nicht fest. Sie bewegt sich unterhalb des Spieler, indem sie im Fenster verschoben wird. Das klappt wunderbar und sieht super aus.
Das ist Panel 1 was auf dem Fenster liegt. Panel 2 ist "fest" auf dem Fenster. Ist auch klar das ist das GUI. Es wird aber zuerst auf das Fenster gelegt, weil auch das ein NULL Layout besitzt. Erste immer ganz oben...nur leider kommt durch die Animation diese durch. Sieht man doch wunderbar auf dem Bild was ich oben verlinkt habe.
 

Campino

Top Contributor
wildcard: Ich sagte: "Das Problem ist, dass du den Aufbau, den ein Spiel normalerweise hat mit Java- Hausmitteln nicht hinbekommen wirst."
JME und ähnliches setzen JLWGL oder JOGL ein. Einige (z.B. odejava) sind eigentlich C++- Engines, die über das JNI für Java nutzbar gemacht wurden. Keine einzige setzt auf Java3D, Java2D oder Swing/AWT auf.
Er kann natürlich seine eigene Engine schreiben. Aber aus den oben beschriebenen Gründen (Multi- Threading) nicht mit Swing oder AWT.

Titanpharao: Schieb nicht Panel1, sondern ändere die Position an der du dein Bild in das Panel malst. Dann verschiebt sich die Darstellung, das Panel aber nicht. Somit bleibt auch dein HUD fest.
 

Wildcard

Top Contributor
Campino hat gesagt.:
wildcard: Ich sagte: "Das Problem ist, dass du den Aufbau, den ein Spiel normalerweise hat mit Java- Hausmitteln nicht hinbekommen wirst."
JME und ähnliches setzen JLWGL oder JOGL ein. Einige (z.B. odejava) sind eigentlich C++- Engines, die über das JNI für Java nutzbar gemacht wurden. Keine einzige setzt auf Java3D, Java2D oder Swing/AWT auf.
Er kann natürlich seine eigene Engine schreiben. Aber aus den oben beschriebenen Gründen (Multi- Threading) nicht mit Swing oder AWT.
Dir scheint der unterschied zwischen einer Bibliothek und einer Engine nicht klar zu sein. Natürlich setzt JOGL nicht auf Java3D auf, denn es ist genau andersrum, Java3D verwendet die JOGL Rendering Pipeline.
JOGL ist lediglich ein Java Binding für die OpenGL API.
JLWGL? Du meinst sicherlich LWJGL, oder :wink:
Was du nun aber als Java Hausmittel bezeichnest...?
Wenn du die JRE meinst, nein, die sieht kein 3D vor, denn das ist zu speziell um damit die JRE weiter aufzublähen.
Spiele kannst du allerdings sehr wohl mit AWT/Swing erschlagen. Im Fullscreen exclusive mode spricht zB nichts dagegen Page Fliping und Active Rendering zu verwenden und das übliche Threading Modell das für Desktop Anwendungen konzipiert wurde, einfach nicht zu verwenden.
 

Quaxli

Top Contributor
@Wildcard: Dem kann man nur zustimmen!

Was hier, meiner Ansicht nach, das grundsätzliche Problem ist: Es wurden zuviele Swing-Komponenten verwendet. Wenn ich lese, daß jemand für den Spieler eine Swing-Komponente verwendet, stellen sich mir persönlich immer etwas die Fußnägel auf.
Meiner Ansicht nach sollte man bei einfachen Spielen nur eine Swing- oder AWT-Komponente haben: Nämlich das Fenster. Alle anderen Komponenten, wie z. B. Status-Anzeigen, etc. sollten über eigen Klassen realisiert werden, die direkt in das Graphics-Objekt des Fensters zeichnen. Dann hat man auch keine Probleme Animationen, Transparenz, etc. zu realisieren.
Das soll jetzt nicht heißen, daß andere Swing-Komponenten grundsätzlich als tabu anzusehen sind, aber man sollte deren Einsatz gut abwägen. Natürlich kann man z. B. das Innere eines Hauses in einem RPG oder einen Shop als JDialog realisieren (hab ich auch schon gemacht) - nur ein Spiel mit Swing-Komponenten zu realisieren, weil man sich (nur) damit auskennt erscheint mir der falsche Weg.
Meiner Ansicht nach, muß man bei der Programmierung von Spielen sich vom GUI-Denken wegbewegen und das Ganze etwas abstrakter sehen.

Soweit meine Meinung zum grundsätzlichen Problem
 

Titanpharao

Bekanntes Mitglied
Das alte Spiel basierte auf zeichenfunktion. War aber mehr umständlich als Hilfreich.
Mit dem Spielwelt auf Panel zeichnen, würde ja gehen, wenn ich nicht alles in Labels gepackt hätte. Dann läst sich etwas blöd die "laufen" animation realisieren. Sonnst müste ich die labels alle einzeln auf der welt verschieben um x Pixel. So liegen sie auf dem Panel und nur das wird um x verschoben.
Vielleicht nicht ganz perfekt, aber mitlerweile wurde eh die Animationen rausgehauen aus der Welt. Wirds halt ohne Wellengang^^
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S AirHockey Kollisionsprobleme, bitte um Hilfe Spiele- und Multimedia-Programmierung 2
O Pause Menu im 2D Game, bitte um Rat! Spiele- und Multimedia-Programmierung 4
timbeau TicTacToe - Bitte um Feedback Spiele- und Multimedia-Programmierung 4
S Java Sound - Skipping in .mp3 Files und Bug (Bitte überprüfenl) Spiele- und Multimedia-Programmierung 14
C ***** bitte thread löschen *** Spiele- und Multimedia-Programmierung 3
R JAsteroids - Bitte testen! Spiele- und Multimedia-Programmierung 33
P Langsames laden der Maps, bitte testen Spiele- und Multimedia-Programmierung 14
T Spiel mit schöner Grafik, bitte testen Spiele- und Multimedia-Programmierung 10
R JavaPong - Bitte Testen Spiele- und Multimedia-Programmierung 7
thE_29 Vor dem ersten Posten bitte lesen! Spiele- und Multimedia-Programmierung 0
R Vier gewinnt: Bitte testen Spiele- und Multimedia-Programmierung 25
H WegnehmSpiel, bitte Testen. Spiele- und Multimedia-Programmierung 11
Atten007 Minecraft Hilfe bei benutzerdefinierten Bannervorlagen in MCreator benötigt Spiele- und Multimedia-Programmierung 0
R Flappy Bird Hilfe Spiele- und Multimedia-Programmierung 1
Atten007 Minecraft Hilfe bei der Fehlerbehebung in MCreator benötigt Spiele- und Multimedia-Programmierung 1
Atten007 Minecraft Hilfe beim MCreator Plugin benötigt Spiele- und Multimedia-Programmierung 0
Atten007 Minecraft Hilfe beim MCreator Plugin benötigt Spiele- und Multimedia-Programmierung 5
A [HILFE] - Minecraft-Problem! Spiele- und Multimedia-Programmierung 1
JEP1 Hilfe bei Spiel Spiele- und Multimedia-Programmierung 1
J TreeNode erstellen [Hilfe beim Konstruktor, Zeile 16] Spiele- und Multimedia-Programmierung 2
Z Minecraft Hilfe bei Minecraft PvP Client Spiele- und Multimedia-Programmierung 21
T Hilfe beim Platzieren der Schiffe Spiele- und Multimedia-Programmierung 14
M Brauche Hilfe was zu Programmieren Spiele- und Multimedia-Programmierung 4
P Snake Java Hilfe Spiele- und Multimedia-Programmierung 4
RalleYTN Brauche Hilfe beim Einlesen von PNGs Spiele- und Multimedia-Programmierung 14
P Hilfe für Seminar Arbeit Spiele- und Multimedia-Programmierung 9
T Pong Hilfe bei einer Website Spiele- und Multimedia-Programmierung 4
T Hilfe bei decompilen von Plugin Spiele- und Multimedia-Programmierung 6
E Brauche Hilfe was soll ich tun Spiele- und Multimedia-Programmierung 7
B HILFE bei Spieleprogrammierung mit Slick2D Spiele- und Multimedia-Programmierung 9
S Würfelspiel; Hilfe Spiele- und Multimedia-Programmierung 3
M Hilfe bei vier gewinnt Spiele- und Multimedia-Programmierung 4
S Hilfe bei Java Gui Spiele- und Multimedia-Programmierung 2
C Visual Story programieren/hilfe Spiele- und Multimedia-Programmierung 5
L Hilfe: Moog VCF Diskretisierungs Algorithmen (Smith/Stilson u.A.) Spiele- und Multimedia-Programmierung 0
J Spielfiguren laufen lassen auf einer html Tabelle mit Hilfe von Servlets Spiele- und Multimedia-Programmierung 2
M Hilfe bei Snake Spiele- und Multimedia-Programmierung 4
T Hintergrundmusik eines Spiels mit Hilfe von JLayer Spiele- und Multimedia-Programmierung 12
S 2D mit Slick - Anfänger sucht Hilfe Spiele- und Multimedia-Programmierung 4
C Generelle Hilfe zur lwjgl Spiele- und Multimedia-Programmierung 0
J Hilfe bei Fußballmanager Spiele- und Multimedia-Programmierung 0
C Hilfe bei einem Mosaikspiel Spiele- und Multimedia-Programmierung 16
J Java Steuerberechnung hilfe Spiele- und Multimedia-Programmierung 17
U Hilfe bei Implementierung eines PointSounds in Java3D Spiele- und Multimedia-Programmierung 1
E Hilfe bei Labyrinth Programmierung. Spiele- und Multimedia-Programmierung 9
S Hilfe bei Spiel Spiele- und Multimedia-Programmierung 6
T Aim-Hilfe Spiele- und Multimedia-Programmierung 4
S Shiritori / word chain / Wörterkette Hilfe Spiele- und Multimedia-Programmierung 1
J Hilfe bei mastermind dringend !!!!! Spiele- und Multimedia-Programmierung 3
S Hilfe bei Spielumsetzung Spiele- und Multimedia-Programmierung 6
M Kleines Spongebobspiel / Hilfe gesucht Spiele- und Multimedia-Programmierung 2
L Hilfe bei Entities benötigt Spiele- und Multimedia-Programmierung 6
L Hilfe bei Klassendesign für Spiel Spiele- und Multimedia-Programmierung 2
A Minecraft Hilfe bei Minecraft Mod Spiele- und Multimedia-Programmierung 1
F Einen Sound mit veränderter Tonhöhe und Geschwindigkeit abspielen - Hilfe erbeten Spiele- und Multimedia-Programmierung 29
V Keine Ahnung von OpenGL! Hilfe wäre lieb! Spiele- und Multimedia-Programmierung 8
L Minecraft Minecraft Bukkit Plugin hilfe Spiele- und Multimedia-Programmierung 9
E Hilfe bei Highscore programmierung Spiele- und Multimedia-Programmierung 3
G Acht-Damen-Problem HILFE! Spiele- und Multimedia-Programmierung 11
R Hilfe bei Snake-Programmierung Spiele- und Multimedia-Programmierung 6
B Hilfe bei Minecraft Plugin Spiele- und Multimedia-Programmierung 3
C Java Brauche Hilfe Spiele- und Multimedia-Programmierung 5
M Hilfe bei Spiel Programmierung Spiele- und Multimedia-Programmierung 4
B Hilfe bei GameGrid Spiele- und Multimedia-Programmierung 11
J Spiel mit Java SWING, LWJGL und JMonkey [Anfänger braucht Hilfe] Spiele- und Multimedia-Programmierung 10
N Hilfe bei Tower Defense Spiele- und Multimedia-Programmierung 22
R hilfe bei 2DSpiel. Spiele- und Multimedia-Programmierung 3
L Abfrage-Fehler? - Hilfe bei Tetris Spiele- und Multimedia-Programmierung 9
R Hilfe bei Reversi/Othello Spiele- und Multimedia-Programmierung 6
J Hilfe: Rotation X und Y Achse (Java3d) Spiele- und Multimedia-Programmierung 12
B Hilfe bekomme den IF befehl nicht hin Spiele- und Multimedia-Programmierung 10
C RFID Überwachung - Hilfe Spiele- und Multimedia-Programmierung 3
javajavajava Java Lotto Zahl 6 aus 49 - Brauche Hilfe Spiele- und Multimedia-Programmierung 3
radiac FullScreenExlusiveMode HILFE!!! Spiele- und Multimedia-Programmierung 6
E TetrisApplet Thread Hilfe Spiele- und Multimedia-Programmierung 6
H PingPong HILFE !!! Spiele- und Multimedia-Programmierung 3
G GO-Spiel in Java noch fehlerhaft hoffe um hilfe Spiele- und Multimedia-Programmierung 7
N Brauche Hilfe bei kleinem Spiel Spiele- und Multimedia-Programmierung 40
N In einem Kasten springende Bälle programmieren...Hilfe Spiele- und Multimedia-Programmierung 7
L Brauche hilfe mit KeyEvent Spiele- und Multimedia-Programmierung 4
B brauche hilfe bei der tastenzuodnung Spiele- und Multimedia-Programmierung 3
E Hilfe bei einer GUI Programmierung mit Graph Spiele- und Multimedia-Programmierung 30
H Decke zeichnen mit Hilfe eines Polygons Spiele- und Multimedia-Programmierung 2
W Hilfe bei Pong mit Bluej Spiele- und Multimedia-Programmierung 4
A Hilfe bei der Methode COLOR (Java) Spiele- und Multimedia-Programmierung 10
S Hilfe: Ich sehe durch die ganze Api's nicht mehr durch! Spiele- und Multimedia-Programmierung 15
N Hilfe bei snake Spiele- und Multimedia-Programmierung 37
C Hilfe bei einfachen Game Spiele- und Multimedia-Programmierung 15
G Fragespiel, Hilfe ! like Wer wird Millinär Spiele- und Multimedia-Programmierung 12
D Hilfe mit mini-spiel für die Schule. Spiele- und Multimedia-Programmierung 1
F Brauche Hilfe bei Bewegung eines Rechtecks [Applet] Spiele- und Multimedia-Programmierung 5
G Hilfe bei 3Gewinnt! Spiele- und Multimedia-Programmierung 2
C anfänger braucht hilfe für info unterricht Spiele- und Multimedia-Programmierung 21
A Hilfe bei Programmierung von Abalone Spiele- und Multimedia-Programmierung 6
S Hilfe bei Galgenmännchen Spiele- und Multimedia-Programmierung 4
M 'Mensch ärgere Dich nicht' - Hilfe! Spiele- und Multimedia-Programmierung 12
K Hilfe bei Grafikeinbindung in einem Spiel Spiele- und Multimedia-Programmierung 6
H Ich benötige Hilfe [Noob] Spiele- und Multimedia-Programmierung 9
R Probleme mit Sound in Applikation. HILFE Spiele- und Multimedia-Programmierung 5
B Hilfe gesucht!! (bewegen von grafischen Objekten) Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen

Neue Themen


Oben