Probleme mit Darstellung von Umgebungen mittels mehrdimensionaler Arrays

Arn

Mitglied
Guten tag,

Ich bin gerade dabei ein Spiel zu entwickeln und habe mir gedacht das ich am besten für die Darstellung des Levels einen Mehrdimensionales (3 dimensionales) Array benutze. Hier drin sind Objekte gespeichert. Die Darstellung funktioniert bei mir so, dass ich eine Hauptklasse habe, die von JPanel erbt und einen JFrame hat, in dem sie sich selbst befindet. Nach dem Konstruktor wird eine Endlosschleife ausgelöst, es handelt sich dabei um eine while schleife, die als Ausgangsbedingung die Methode isVisible() von JFrame hat. In ihr werden nun die repaint() Methode ausgeführt, und der Thread anschließend für 30 Millisekunden schlafen gelegt. In der paintcomponent Methode meines JPanels steht dann alles was angezeigt werden soll. Unter anderem wird auch meine Map gezeichnet. Dies geschieht indem das mehrdimensionale Array mit 3 ineinander verschachtelten for- schleifen abgegrast wird. Die Klassen die sich in dem Array befinden haben alle eine Methode paint(Graphics g) die hier ausgeführt wird.

Soweit so gut, nun aber zu dem Problem.

DasArray wird nicht bei jedem Schleifendurchlauf vollständig gezeichnet, dies äußert sich darin, das die Karte oder teile der selbigen manchmal flackern. Ich weiß nicht woher das kommt, ich habe mit die Zählvariabeln der for-Schleifen ausgeben lassen, und diese sagen, das auch in den fällen wo das Bild flackert, das komplette Array abgegrast und überall die Paint Methode ausgeführt wurde. Es gibt keine Exceptions, und Code der nach dem Zeichnen der Map in paintComponent(Graphics g) steht wird auch problemlos ausgeführt. Ich weis nicht wo das problem liegt, gibt es noch andere Threads die auf meinen Array zugreifen von denen ich nichts weis?

Vielen Dank für alle Antworten
 

turtle

Top Contributor
Das ständige Neuzeichnen des JPanels führt (natürlich) zu Flackereffekten;)

Ausserdem synchronisiert Swing nicht das Drawing deines Programms mit dem Neuzeichnen des Bildschirms.

Daher werden derartige Dinge oft in einem off-screen Modus gezeichnet und am Ende die ganze Bitmap "gezeichnet". Dieses nennt sich Double-Buffering und verhindert dadurch, das Teile gezeichnet werden, die im nächsten Durchlauf etwas anders aussehen.

Du kannst einBufferedImage erzeugen und deine Ausgabe darin machen.
Java:
        BufferedImage displayImage = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB);
        Graphics2D g2 = displayImage.createGraphics();
Dieses displayImage "malst" du dann einfach in deinem paintComponent, bzw. lässt Swing dies tun, indem du repaint() aufrufst.
 

Arn

Mitglied
@ HarleyDavidson mein problem hat nichts mit einer Animation zu tun, trotzdem Danke, ich werde mir das Tutorial mal zur Gemüte führen.
@ turtle danke ich werd mal sehen und wahrscheinlich einen hybrid zwischen der jetzt bestehenden und der offscreen Technik entwickeln, ich vermute nämlich das ich den Arbeitsspeicher zu sehr quäle wenn ich bei größeren maps alles vorzeichne aber ich denke das sich da was hübsch dynamisches machen lässt. Vielen Dank!

;)
 

Androbin

Bekanntes Mitglied
Arn hat gesagt.:
Nach dem Konstruktor wird eine Endlosschleife ausgelöst, es handelt sich dabei um eine while schleife, die ...
Frage: Läuft deine Endlosschleife direkt innerhalb des Konstruktors oder startest du hierfür einen neuen Thread?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Scaling Probleme Spiele- und Multimedia-Programmierung 6
J Probleme bei Pong Spiele- und Multimedia-Programmierung 9
D Java Bomberman Probleme java.lang.NullPointerException Spiele- und Multimedia-Programmierung 1
J YoutubeAPI Livestream probleme Spiele- und Multimedia-Programmierung 3
G [LibGDX] Button Klick Probleme Spiele- und Multimedia-Programmierung 1
T Probleme mit JButton Spiele- und Multimedia-Programmierung 5
T Probleme bei "Pixel-Fighting"-Spiel: Unausgewogene Mannschaften??? Spiele- und Multimedia-Programmierung 4
P Probleme mit VLCJ Spiele- und Multimedia-Programmierung 0
F Probleme bei der Soundwiedergabe Spiele- und Multimedia-Programmierung 0
S Probleme bei Breakout - Brick kollision Spiele- und Multimedia-Programmierung 2
S 2D-Render Probleme LWJGL 2 (Java) Spiele- und Multimedia-Programmierung 1
F BlueJ Ufospiel Probleme Spiele- und Multimedia-Programmierung 1
B Probleme mit AndEngine in Android Spiele- und Multimedia-Programmierung 1
M 2048, 3 kleine Probleme Spiele- und Multimedia-Programmierung 4
J Java Game performance Probleme Spiele- und Multimedia-Programmierung 7
J Perfomance Probleme beim eigenen Editor Spiele- und Multimedia-Programmierung 1
K Probleme beim kompilieren von javakara Spiele- und Multimedia-Programmierung 10
Q LWJGL - Alpha-Probleme Spiele- und Multimedia-Programmierung 2
M Point & Click Thread Probleme Spiele- und Multimedia-Programmierung 20
K Probleme mit .jar Spiele- und Multimedia-Programmierung 12
L Probleme beim kompilieren von javakara Spiele- und Multimedia-Programmierung 3
D Probleme mit der Runnable jar Datei Spiele- und Multimedia-Programmierung 3
D Probleme mit objekt initializirung mit Mouselistener Spiele- und Multimedia-Programmierung 10
Black_ixx Hintergrund & Koordinaten Probleme Spiele- und Multimedia-Programmierung 2
B Probleme mit Texturen Spiele- und Multimedia-Programmierung 7
Maxim6394 Probleme bei Sidescroller Spiele- und Multimedia-Programmierung 5
R Probleme mit JPanel!KeyListener geht nicht Spiele- und Multimedia-Programmierung 6
Maxim6394 [Java3D] Probleme bei Kollision Spiele- und Multimedia-Programmierung 7
Maxim6394 [Java3D] Probleme mit KeyFrame Animationen Spiele- und Multimedia-Programmierung 9
T Probleme mit Skysphere in Opengl Spiele- und Multimedia-Programmierung 4
B Probleme mit redraw() Spiele- und Multimedia-Programmierung 3
Gossi Quaxlis 2D Tutorial....Probleme nach hinzufügen der Kollisionsabfrage Spiele- und Multimedia-Programmierung 16
Gossi Probleme beim Laden der Images aus dem "Tutorial für Java-Spiele" Spiele- und Multimedia-Programmierung 4
S Probleme mit Tutorial Spiele- und Multimedia-Programmierung 3
T Probleme mit AffineTransform Spiele- und Multimedia-Programmierung 13
W Probleme mit Mouselook Spiele- und Multimedia-Programmierung 2
B GameGrid Probleme mit mehrere Actors Spiele- und Multimedia-Programmierung 5
B GameGrid Probleme mit mehrere Actors Spiele- und Multimedia-Programmierung 2
M [Spiel] Kartenspiel Leben und Tod Tips und Probleme Spiele- und Multimedia-Programmierung 7
G [Java3D] Probleme bei Animation Spiele- und Multimedia-Programmierung 4
S Probleme mit JMenu in einem JFrame mit BufferStrategy Spiele- und Multimedia-Programmierung 2
Steev Probleme mit Kameraausrichtung bei ISO-Map Spiele- und Multimedia-Programmierung 3
R MediaPlayer macht Probleme Spiele- und Multimedia-Programmierung 2
N Jogl Probleme mit dem Buffer beim laden einer Textur Spiele- und Multimedia-Programmierung 2
prakdi Probleme mit Quaxlis tutorial Spiele- und Multimedia-Programmierung 5
D Java Pong Probleme Spiele- und Multimedia-Programmierung 7
T Java Sound Probleme Spiele- und Multimedia-Programmierung 8
P probleme mit key event Spiele- und Multimedia-Programmierung 11
T Bekanntes Heli Spiel -> Aber Probleme damit Spiele- und Multimedia-Programmierung 30
S Probleme mit Thread beim Streaming Spiele- und Multimedia-Programmierung 1
O Ampel - Probleme mit der Farbgebung Spiele- und Multimedia-Programmierung 16
F Probleme bei Bewegung Spiele- und Multimedia-Programmierung 7
P Probleme mit Vista und JOGL Spiele- und Multimedia-Programmierung 2
P Probleme mit Wolkenbewegung Spiele- und Multimedia-Programmierung 5
W Probleme mit dem setTextureCoordinate Spiele- und Multimedia-Programmierung 3
D Probleme beim Download von GIF-Bildern Spiele- und Multimedia-Programmierung 4
S Probleme mit dem Licht und dem KeyListener Spiele- und Multimedia-Programmierung 2
L Probleme Bei Pong Programmierung Spiele- und Multimedia-Programmierung 2
D Probleme bei ATI Karten bekannt? Spiele- und Multimedia-Programmierung 4
H Probleme bei Rotation Spiele- und Multimedia-Programmierung 9
X Probleme. Spiele- und Multimedia-Programmierung 2
E Probleme mit Kollisionserkennung ! Spiele- und Multimedia-Programmierung 2
F Probleme mit selbsterstelltem transparenten PNG Spiele- und Multimedia-Programmierung 5
S probleme mit material Spiele- und Multimedia-Programmierung 2
W Probleme beim entfernen von Childs im HauptSceneGraph Spiele- und Multimedia-Programmierung 8
N Pong - noch 2 kleinere Probleme Spiele- und Multimedia-Programmierung 16
M Probleme mit WaveFront-Object - Datei Spiele- und Multimedia-Programmierung 7
B Probleme beim zeichnen Spiele- und Multimedia-Programmierung 15
D Gomoku --- Probleme bei Instanzierung Spiele- und Multimedia-Programmierung 2
G Probleme beim installieren java 3d linux Spiele- und Multimedia-Programmierung 4
G Sound Probleme Spiele- und Multimedia-Programmierung 2
S Probleme mit Canvas! Spiele- und Multimedia-Programmierung 2
S Jump'n'Run: Probleme mit Kollision Spiele- und Multimedia-Programmierung 13
C Probleme mit Java3D (sun.awt.DrawingSurface) in Java 5 Spiele- und Multimedia-Programmierung 10
R Probleme mit Sound in Applikation. HILFE Spiele- und Multimedia-Programmierung 5
N Probleme mit View Spiele- und Multimedia-Programmierung 3
E TexturePaint Isometrische Darstellung Spiele- und Multimedia-Programmierung 3
M schematische Darstellung TicTacToe Spiele- und Multimedia-Programmierung 7
A Methoden zur flüssigen Darstellung von Spielen Spiele- und Multimedia-Programmierung 7
L Korrekte Darstellung von Wasser in 2D Spiel Spiele- und Multimedia-Programmierung 4
c_sidi90 Isometrische Darstellung Spiele- und Multimedia-Programmierung 3
L Lwjgl Darstellung eines Kreises im Raum Spiele- und Multimedia-Programmierung 3
A Schnelle 2D darstellung Spiele- und Multimedia-Programmierung 12
S Jogl Problem bei Darstellung Spiele- und Multimedia-Programmierung 9
C Grafische Darstellung der Mandelbrotmenge Spiele- und Multimedia-Programmierung 3
S Fehlerhafte Darstellung durch Transparenz? Spiele- und Multimedia-Programmierung 8
F Darstellung einer tierischen Zelle Spiele- und Multimedia-Programmierung 3
egrath [Java3D] Keine Darstellung trotz Geometrie und Licht Spiele- und Multimedia-Programmierung 6
C Darstellung von Datensätzen mit Beziehungen in Java? Spiele- und Multimedia-Programmierung 6
M Darstellung einer schwingenden Membran? Spiele- und Multimedia-Programmierung 23

Ähnliche Java Themen

Neue Themen


Oben