# gif animationen werden schnell abgespielt



## GIFI (6. Okt 2005)

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!


----------



## Soulfly (6. Okt 2005)

Machst du auch eine Pause zwischen den Zeichnungen

Thread.sleep(100);  //Try-catch nicht vergessen


----------



## Guest (6. Okt 2005)

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:


```
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
```


----------



## Guest (7. Okt 2005)

keiner eine ahnung?


----------



## Guest (9. Okt 2005)

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.


----------

