Image flimmert

Status
Nicht offen für weitere Antworten.

Bergmann

Aktives Mitglied
HI,

wir basteln in der Schule zur Zeit n kleines Game. Und da hab ich folgendes Problem. Ich hab in dem Spiel ne DialogBox. Das ich die nich jedesmal neu zeichnen muss speicher ich mir die in ne BufferedImage und zeichne dann die BufferedImage auf mein Frame. Bei meinem DesktopPC funzt das auch 1a, aber auf'm Laptop hab ich n DualCore und da flimmert das. Denk ma das es am DualCore liegt, denn wenn die die CPU-Zugehörigkeit auf CPU 0 setzt flimmerts (fast) nicht mehr. Wie bekomm ich das Flimmern jetzt weg, ohne jedesma den einen Prozessor abzuschalten?

hier noch der relevante Code:
Java:
       /**legt den Text der dialogBox fest
	 * @param text Text der DialogBox*/
	public void setText(String text){
		text = Utils.readCharCode(text);
		int width = this.width-borderWidth;
		if (answer) width -= cursor.getWidth();
		font.setTextBox(text, width);
		activeLine = 0;
		yOffset = 0;
		drawImage();
	}

       /**rendert den ImageBuffer vor*/
	public void drawImage(){
		if (background == null ||
		    border[0]  == null ||
			border[1]  == null ||
			border[2]  == null ||
			imageBuffer == null) return;
		
		Pen pen = new Pen();
		pen.setGraphics(imageBuffer.getGraphics());
		pen.reset();
		
		pen.push();
			pen.translate(borderWidth/2, borderWidth/2);
			pen.drawImage(background);
		pen.pop();
		pen.push();
			pen.translate(borderWidth, 
			    borderWidth - activeLine*font.getHeight() - (int)Math.round(yOffset));
			if (answer) pen.translate(cursor.getWidth(), 0);
			font.drawTextBox(pen);
		pen.pop();
		pen.push();
			pen.drawImage(border[0]);
			pen.translate(border[0].getWidth(), 0);
			pen.drawImage(border[1]);
			pen.translate(border[1].getWidth(), 0);
			pen.drawImage(border[2]);
			pen.translate(0, border[2].getHeight());
			pen.drawImage(border[3]);
			pen.translate(0, border[3].getHeight());
			pen.drawImage(border[4]);
			pen.translate(-border[5].getWidth(), 0);
			pen.drawImage(border[5]);
			pen.translate(-border[6].getWidth(), 0);
			pen.drawImage(border[6]);
			pen.translate(0, -border[7].getHeight());
			pen.drawImage(border[7]);
		pen.pop();
		
		if (answer){
			pen.push();
				pen.translate(borderWidth,
						      borderWidth + activeAnswer*font.getHeight());
				pen.drawImage(cursor);
			pen.pop();
		}
	}
	
	/**Zeichnet die DialogBox
	 * @param pen Zeichenstift*/
	public void draw(Pen pen){
		if (!active) return;
		pen.push();
			pen.translate(0, Game.game.getHeight() - height);
			pen.drawImage(imageBuffer);
		pen.pop();
	}
is nich der ganze Code, aber es sollte deutlich werden was ich mach. wenn nich sagt bescheid was ihr noch braucht...

MfG Bergmann.
 

L-ectron-X

Gesperrter Benutzer
Das Problem ist der Aufruf von getGraphics().
Diese Methode sollte nie (es gibt aber eine oder zwei Ausnahmen) vom Programmierer aufgerufen werden. Swing-Komponenten sind bereits gepuffert, du kannst so auch auf jegliche Doppelpuffer-Programmierung verzichten.
Zeichne in der paintComponent()-Methode, dann hast du das Problem vom Tisch.
 

Bergmann

Aktives Mitglied
Hey,

so hab ich das zuerst gelöst, da ich aber die DialogBox komplett selbst zusammenbau, vom Hintergrund bis zum Zeichnen der einzellnen Buchstaben, steigt die CPU-Last ins unermessliche. Deshalb der Umweg über die Image. Noch ein Grund für die Image: da ich den Text in der DialogBox verschiebe, kommt er irgendwann über die obere Grenze un dann steht der Text nicht mehr in der DialogBox. Also benutz ich die Image auch um die Ausgabe zu begrenzen...
€: imageBuffer is ne BufferedImage. und um in die rein zu zeichnen muss ich ja getGraphics() benutzen, oder?

MfG Bergmann.
 
Zuletzt bearbeitet:

Marco13

Top Contributor
So wie das aussieht wird das getGraphics aber auf einem (Buffered)Image aufgerufen, und das ist OK. Poste ggf. mal mehr Code. Was compilierbares wäre optimal.
 

Bergmann

Aktives Mitglied
Hey,

ich hab die DialogBox jetzt mal in ein neues Projekt eingebaut...
Liegt im Anhang, so kann man das vlt besser nachvollziehen...

MfG Bergmann
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Area mit Teil-Image füllen Java Basics - Anfänger-Themen 0
B Image Matching in Memory Minigame Java Basics - Anfänger-Themen 7
J JLabel bzw. Image Icon mit KeyEvent bewgen Java Basics - Anfänger-Themen 9
Butzibu Image Loader lädt nicht alle Bilder: Java Basics - Anfänger-Themen 4
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
T Image Icon Java Basics - Anfänger-Themen 3
K File (png) in Image laden Java Basics - Anfänger-Themen 3
M Image löschen Java Basics - Anfänger-Themen 2
G Image in Vordergrund Java Basics - Anfänger-Themen 3
B InputStream (PDF) nach Image (PNG / JPG) konvertieren? Java Basics - Anfänger-Themen 2
S Image Datei selektieren und in Projekt Verzeichnis abspeichern/kopieren Java Basics - Anfänger-Themen 16
N Best Practice Image recognition fuzzy Superhash berechnen Java Basics - Anfänger-Themen 1
H Image laden Java Basics - Anfänger-Themen 4
R Image drehen Java Basics - Anfänger-Themen 1
R Image Teilen Java Basics - Anfänger-Themen 3
B Image laden im GridBagLayout Java Basics - Anfänger-Themen 3
N Image von Resource wird nicht geladen Java Basics - Anfänger-Themen 2
N Datentypen Image zu Byte-Array Java Basics - Anfänger-Themen 4
F Image wird nicht gezeichent?! Java Basics - Anfänger-Themen 21
N Hintergrund image mit .setContentPane Java Basics - Anfänger-Themen 6
W aus Methode auf JLabel zugreifen und Image verändern Java Basics - Anfänger-Themen 1
S buffered image Java Basics - Anfänger-Themen 18
V Scale displayed Image via JCheckBox Java Basics - Anfänger-Themen 1
I Resize Image - Einlesen von InputStream Java Basics - Anfänger-Themen 3
M Image Download klappt nicht mehr Java Basics - Anfänger-Themen 4
Chava Testprojekt.Text.Image.Button Java Basics - Anfänger-Themen 4
S Image nach MausMotion rotieren Java Basics - Anfänger-Themen 7
L Erste Schritte Java Image und Video-Slideshow GUI Java Basics - Anfänger-Themen 3
D Kleinere Positionsangabe als einzelne Pixel bei Image? Java Basics - Anfänger-Themen 28
S Image in Panel laden Java Basics - Anfänger-Themen 12
H Prüfen, ob jpg image schon vorhanden ist, bevor es geladen wird Java Basics - Anfänger-Themen 13
V Image Crawler Java Basics - Anfänger-Themen 3
P Erste Schritte Buffered Image splitten und darstellen Java Basics - Anfänger-Themen 2
P Erste Schritte Image anzeigen in ausführbarer jar mit der Toolkit class Java Basics - Anfänger-Themen 8
T udp -> bytearray -> image -> ausgabe via frame Java Basics - Anfänger-Themen 6
A Image (Bitmap) in String (für XML) Java Basics - Anfänger-Themen 7
F Buffered Image über Socket versenden Java Basics - Anfänger-Themen 6
T Image ist Null - warum? Java Basics - Anfänger-Themen 18
V Image -> 2D Array (int [][]) Java Basics - Anfänger-Themen 4
L Image laden und auf jPanel ausgeben Java Basics - Anfänger-Themen 7
V FileInputStream auf ein swt.Image Java Basics - Anfänger-Themen 6
A Wie kann man etwas von Typ Image wieder löschen? Java Basics - Anfänger-Themen 7
F Image übertragen und zeichnen Java Basics - Anfänger-Themen 8
G Problem mit Image.IO.read( File ) Java Basics - Anfänger-Themen 3
G Image spiegeln Java Basics - Anfänger-Themen 17
Y Trotz add wird Image in GradBagLayout nicht angezeigt Java Basics - Anfänger-Themen 5
Spin Image helper Java Basics - Anfänger-Themen 6
M Image Metadaten setzen Java Basics - Anfänger-Themen 2
Spin Backgrond Color von Image ermitteln Java Basics - Anfänger-Themen 2
C Image draw... Java Basics - Anfänger-Themen 7
M Image-Icon Ändern Java Basics - Anfänger-Themen 15
J Image upload auf ImageShack,TinyPic usw. Java Basics - Anfänger-Themen 11
R Image laden die Zweite Java Basics - Anfänger-Themen 4
R Image laden Java Basics - Anfänger-Themen 10
M Image zeichenen mit Double Werten Java Basics - Anfänger-Themen 4
B polyline auf buffered image malen Java Basics - Anfänger-Themen 2
G Image to File Java Basics - Anfänger-Themen 4
T Image Position erkennen Java Basics - Anfänger-Themen 6
Spin Image skalieren Java Basics - Anfänger-Themen 2
Spin Background Image Java Basics - Anfänger-Themen 2
K Image / drawImage Java Basics - Anfänger-Themen 2
P Buffered Image, Bereich ausschneiden Java Basics - Anfänger-Themen 3
F Image Editor Java Basics - Anfänger-Themen 2
R Image aus jar laden (dieses mal awt) Java Basics - Anfänger-Themen 19
Povlsen84 Image exakt erzeugen Java Basics - Anfänger-Themen 5
B Teile einer Image in neue Image kopieren Java Basics - Anfänger-Themen 4
X ARGB Werte auslesen aus Image Java Basics - Anfänger-Themen 2
O Image Loader laedt bild nicht Java Basics - Anfänger-Themen 11
H String to image! Java Basics - Anfänger-Themen 6
H2SO3- image beim awt frame wegmachen Java Basics - Anfänger-Themen 2
M Probleme mit Manifest und Image Java Basics - Anfänger-Themen 2
T Java Bilderverwaltung - Image Fetcher Problem Java Basics - Anfänger-Themen 4
E Image in Datei speichern bzw anzeigen Java Basics - Anfänger-Themen 5
G Image laden Java Basics - Anfänger-Themen 16
O Drag & Drop mit Image? Java Basics - Anfänger-Themen 2
G Image/-Icon wird nicht auf JPanel angezeigt Java Basics - Anfänger-Themen 4
M Image aus JPanel Java Basics - Anfänger-Themen 2
G Kompletten (image) Array löschen Java Basics - Anfänger-Themen 14
P Fileinputstream to image? Java Basics - Anfänger-Themen 3
G Image Problem Java Basics - Anfänger-Themen 5
G Image Java Basics - Anfänger-Themen 3
M draw.Image Java Basics - Anfänger-Themen 11
O Image laden Java Basics - Anfänger-Themen 6
G Image Java Basics - Anfänger-Themen 2
S Image-Datei mit relativem Pfad angeben Java Basics - Anfänger-Themen 3
S Botton und Image kombinieren Java Basics - Anfänger-Themen 3
S import javax.image.io.*; funktioniert nicht Java Basics - Anfänger-Themen 28
D Image drehen Java Basics - Anfänger-Themen 6
DeeDee0815 Uncaught error fetching image Java Basics - Anfänger-Themen 2
A Image erstellen Java Basics - Anfänger-Themen 3
N Grösse eines Image ändern? Java Basics - Anfänger-Themen 4
I Image Dateinformationen auslesen Java Basics - Anfänger-Themen 7
A image uploader applet Java Basics - Anfänger-Themen 10
S image speichern Java Basics - Anfänger-Themen 12
D ImageIO metadata auslesen aus png image Java Basics - Anfänger-Themen 2
G Ausmaße eines Image-Object herrausfinden Java Basics - Anfänger-Themen 4
R Einem Image-Object Alpha-Transparenz hinzufügen Java Basics - Anfänger-Themen 3
S Image in byte[] umwandeln? Java Basics - Anfänger-Themen 2
G Ein Image langsam einblenden und nach 5 Sekunden ausblenden? Java Basics - Anfänger-Themen 10
U Image einlesen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben