[Java] Animationen in Java

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Terrorbeat, 16. April 2011 .

Schlagworte:
  1. 16. April 2011
    Animationen in Java

    HI

    Ich bin aktuell am lernen von Java. In meinem schlauen Büchlein steht unter der Kategorie "java swing" beschrieben wie man Animationen erstellt. Das Funktioniert in etwa so:

    Verschiebt man ein Objekt von A nach B wird es einfach immer neu erstellt in die richtug des Endpunkts allerdings mit delay. So schuts aus als würde es einfach nur verschoben. Doch muss man vor jedem "neu setzen" das ganze Panel mit der Hintergrund Farbe neu einfärben sonst hat man das Objekt 1000 mal auf dem Bildschirm und sähe aus als hätte man was verschmiert oder weg radiert.

    Ich weiß jetzt noch nicht viel über Java. Aber wen mein Beispielsweise ein Pokerspiel erstellen möchte, wäre es da nicht super kompliziert und eine riesen Arbeit bei jeder Aktion die auf dem Tisch passiert alles neu setzen? Und vor allem rechenintensiv? Werden solche Spiele überhaupt mit swing erstellt oder gibt es bessere Alternativen? Habt ihr gute Tutorials zur Spiele Entwicklung für Java?
     
  2. 16. April 2011
    AW: Animationen in Java

    Also für so was wie ein Pokerspiel kannst du durchaus Swing nutzen. Du platzierst einfach ein Panel in deinem Fenster und überschreibst die paint-Methode. Dann kannst du mit den Graphics-Objekt alles zeichnen, was du brauchst.

    Das leeren des Bildschirms durch das Füllen mit einer Farbe ist gängige Praxis. Es wäre fast genauso rechenintensiv, die Stellen zu bestimmen, die sich geändert haben und nur dort ein Rechteck zu füllen und neu darüber zu zeichnen.

    Dieser Prozess ist natürlich ebenfalls rechenintensiv und besonders in Java sind daher Animationen nur in begrenztem Umfang möglich.

    Die nötige Performance für grafisch aufwendige Spiele kannst du in Java höchstens per OpenGL erreichen. Da gibt es verschiedene Bibliotheken, einige sind auf Spiele ausgerichtet, andere sind einfach nur Wrapper.
     
  3. 16. April 2011
    AW: Animationen in Java

    HI

    Danke für die Antwort

    Ich habe das Panel mit de Oberfläche eines Frames verwechselt, deswegen wirkte es so extrem kompliziert für mich.

    Ich muss mal dieses OpenGL anschauen. Ich habe in diesem Zusammenhang etwas von jmonkeyengine, JOGL und LWJGL gelesen die als Grafik Engines bezeichnet werden. Ist Swing auch eine Engine also im Prinzip das selbe wie die da Oben?

    Wen ja, dann muss es ja für mich, als Programmierer, die Möglichkeit geben eine komplett eigene Engine zu endwickeln. Aber wie macht man so etwas, wie erstellt man Fenster, wie zeichnet man ohne Swing oder andere "Engines"?

    Noch was am Rande: kann man ein Fenster nicht einfach mit HTML gestallten?

    Oh gott es sind so viele Fragen, die so grundsätzlich sind, die ich mir noch nicht erklären kann ^^ Ich komme halt aus dem PHP berreich, übelst die Umstellung.
     
  4. 17. April 2011
    AW: Animationen in Java

    Hey.

    Gerade als Neuling solltest Du dich von Dingen wie Engines, OpenGL abwenden und erstmal Vorhandenes nutzen und damit experimentieren, da dir schlichtweg genaue Ziele, Aufgaben, etc fehlen um sowas wirklich auf die Beine zu stellen.

    Solltest Du dich dann irgenwdann wirklich mal mit OpenGL o.Ä. beschäftigen, dann mach es, aber nicht unbedingt um eine Engine zu schreiben. Um diese zu schreiben brauchst Du ein Fundament (Wissen) und das eignest Du dir mit der Zeit, in der Du mit OpenGL experimentierst und entwickelst, an.

    Grüße.
     
  5. 17. April 2011
    AW: Animationen in Java

    klar kannst du html als gui verwenden. dazu nimmst du dir am besten die webkit engine für java und lädst dort einfach eine html-datei in der du dein interface mit html5/css3 beschreibst.

    um in der html-datei mit deinem java-programm zu kommunizieren verwendest du dann javascript live-connect.

    der nachteil ist, dass dein programm dadurch ziemlich aufgebläht und bei starten noch länger als sonst brauchen wird.
     
  6. 17. April 2011
    AW: Animationen in Java

    Außerdem ist das viel komplizierter, als es gleich mit Swing zu machen. Ebenfalls fehlen dir einige Steuerelemente bzw. sind nur schwierig selber zu realisieren. Also bleib für GUIs lieber bei Swing oder wenn's nativ sein soll SWT.

    Nein, Swing ist OpenGL eigentlich nicht allzu ähnlich. Alles was mit OpenGL zu tun hat, wrappt in irgendeiner Weise die nativen OpenGL-Bibliotheken.

    Um irgendetwas darzustellen muss grundsätzlich irgendwie mit dem OS/Grafikkarte/Treiber kommuniziert werden. Das ist bei Swing oder den OpenGL-Wrappern schon der Fall, da sie das über irgendwelche nativen Bibliotheken tun. So etwas selber zu machen, ist schlichtweg unnötig.
    Eine eigene (Spiele-)Engine zu entwickeln ist aber prinzipiell ein anderer Schuh, sofern man sich dabei auf den ganzen Rest wie Scenemanagement, Sound, Eingabe oder Netzwerk konzentriert. Dabei sollte man als Grafiksubsystem aber trotzdem OpenGL verwenden. Und selbst damit ist das alles 'ne scheiß Arbeit. Ich habe selber mal ein bisschen was mit LWJGL gemacht, wenn du möchtest kann ich es dir mal hochladen - aber das wird dich nicht unbedingt ermutigen
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.