Ersatz für repaint();?
-
Hi.
Ich habe ein kleines Spiel gebastelt. Wem es interessiert, hier der Source: http://lol4me.lima-city.de/puzzle_10_source.txt
Vielleicht hat ja jemand Verbesserungsvorschläge für mich. Bin noch Anfänger.Auf jedem Fall fragt es mit dem KeyListener die Tasten. Wenn die Pfeiltasten gedrückt werden verändern sich Variablen. Danach wird das Bild per repaint(); neu gezeichnet.
Aber dadurch fängt wenn man schneller drückt das Bild an zu flackern. Kennt jemand vielleicht eine andere Möglichkeit das zu realisieren ohne das dieser Effekt entsteht?
-
wenn du "direkt auf dem bildschirm zeichnest" dann ist dieses flackern völlig normal und entsteht immer
alle spiele verfolgen eine strategien wie double/n buffering
das funktioniert so dass du anstatt auf den frontbuffer (bildschirm) auf einen backbuffer zeichnest und dann diesen backbuffer auf ein mal flippst (den ganzen backbuffer sobald er fertig gezeichnet ist auf den frontbuffer zeichnest)
dann füllst du im nächsten frame wieder deinen backbuffer auf
in java gibt es eine klasse die sowas direkt unterstützt - BufferStrategy
gibt genug tutorials dazu, im grunde funktioniert es so
http://gpwiki.org/index.php/Java:Tutorials:Double_Buffering
-
Danke.