gif animationen werden schnell abgespielt

  • Themenstarter Themenstarter GIFI
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

GIFI

Gast
hallo!

ich mach grad ein kleines spiel, und das introvideo ist eigentlich eine gif animation. das poblem dabei ist, dass die animation zu schnell ausgeführt wird. also in ca. einer sekunde ist es fertig, obwohl die animation ca. 30 sekunden dauert. ist ein applet. habs ganz normal mit g.drawImage ausgegeben.

danke im voraus!
 
Machst du auch eine Pause zwischen den Zeichnungen

Thread.sleep(100); //Try-catch nicht vergessen
 
danke für deine antwort!

wie meinst du das mit pause? das ist ein gif bild. geht trotzdem nicht langsamer. hier mal ein paar ausschnitte vom code:

Code:
	public void start()
	{
		Thread tr = new Thread();
		tr.start();
	} // ende start

public void run()
	{
		Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
		
		while(true)
		{
			x = 0;
			y = 0;
			
			repaint();
			
			
			try
			{
				// Stoppen des Threads für in Klammern angegebene Millisekunden
				Thread.sleep (1000);
			}
			catch (InterruptedException ex)
			{
				// do nothing
			}
		}
		
	} // run();


public void paint(Graphics g)
{
				g.drawImage(Intro, x,y,this);

	} // paint()
	
	
//	 Bildschirmflimmern beseitigen (Doppelbufferung)
	public void update(Graphics g) {
		if(dbgImage == null) {
			dbgImage = createImage(this.getSize().width, this.getSize().height);
			dbg = dbgImage.getGraphics();
		}
		// Bildschirm in Hintergrund löschen
		dbg.setColor(getBackground());
		dbg.fillRect(0,0,this.getSize().width, this.getSize().height);
		
		// Bildschirm in Vordergrund zeichnen
		dbg.setColor(getForeground());
		paint(dbg);
		
		// Ausgeben
		g.drawImage(dbgImage,0,0,this);
		
	} // update
 
Er meinte das du die Bilder einzeln ausgeben musst.
In einer Schleife bespielsweise.
Damit dies aber nicht zu schnell hintereinander passiert, lässt du dieses in einem Thread via Thread.sleep(int ms)
geschehen.

Ist zwar nerviger...aber so klappt das auf jeden Fall.
Am besten lässt du die Bilder noch mittels eines MediaTrackers vorladen und wenn die pics alles geladen sind startest du dann den Thread.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben