Foto stapsgewijs laten bewegen?

Status
Niet open voor verdere reacties.

chiquita

Gebruiker
Lid geworden
17 jun 2004
Berichten
6
Ieeps iedereen,

Ik ben bezig om en spel in SWING te maken maar zit met een probleem.
Weet er mss iemand van jullie hoe je een foto stapsgewijs naar beneden kunt laten gaan. Als ik in bijvoorbeeld 5sec mijn foto naar beneden wil laten gaan dan wacht mijn programma 5sec en dan tekent hij die foto ineens onderaan :( .

het zou dus moeten zijn dat je die foto ziet naar beneden gaan (zo een beetje als in tetris).

Bedankt voor jullie tijd,
Jelle
 
Hoi,

Ik weet niet hoe ver je in Java bent, maar je moet eens kijken naar Threads.

En dan kan je zoeken op threads, synchronised en runnable.

Hiermee is te maken wat jij ongeveer zoekt..

Succes :)
 
Geplaatst door Japie82
Hoi,

Ik weet niet hoe ver je in Java bent, maar je moet eens kijken naar Threads.

En dan kan je zoeken op threads, synchronised en runnable.

Hiermee is te maken wat jij ongeveer zoekt..

Succes :)

Thanx, maar het is momenteel al in threads gedaan:
Ziehier hoe :

Thread3 thread3 = new Thread3();
thread3.run();


class Thread3
implements Runnable
{
public void run()
{
int temp = 0;

while(temp<560)
{
repaint();
try
{
repaint();
Thread.sleep(2);
}
catch (InterruptedException ex)
{
}
moveFlesDown(1);
repaint();
temp++;
}
repaint();
}
}

Ik hoop dat je er iets mee bent, zoals je ziet is dat de 3de thread en lopen de 2 andere al.

Bedankt om mij te willen helpen ;)
 
Ik ken natuurlijk niet de volledige code..

moveFlesDown(1); is de methode die de "fles" beweegt?

(en dan zou 1 vervangen moeten worden door temp?)

Code:
Thread3 thread3 = new Thread3(); 
thread3.run(); 

class Thread3 implements Runnable { 

	public void run() { 
		int temp = 0; 

		while(temp<560) {
			try { 
				moveFlesDown(1);
				// moveFlesDown(temp); ??
				temp++;
				repaint(); 
				Thread.sleep(2); 
			} 
			catch (InterruptedException ex) { 
				ex.printStackTrace();
			} 
		} 
	} 
}

4 keer repaint is een beetje overdreven niet? :p
 
Misschien kan je me de code eens mailen?

japie82 @ helpmij . nl

:)
 
Dat is al een flinke lap code :D

Ik kan zo snel niet alles begrijpen, maar een kleine verandering zorgt er wel voor dat je iets ziet bewegen:

De Threads3 class
Code:
public void run() {
      int temp = 0;

      while (temp < 560) {
        try {
          moveFlesDown(temp, getGraphics());
          temp++;
          repaint();
          Thread.sleep(20);
        }
        catch (InterruptedException ex) {
          ex.printStackTrace();
        }
      }


de methode moveFlesDown:
Code:
public void moveFlesDown(int hoeveel, Graphics g) {
//    flesY += hoeveel;
    flesLBL.setText("blaat");
    flesLBL.setBounds(flesX, flesY, fles.getIconWidth(), fles.getIconHeight());
    g.drawString("Japie rules :-p", 50, hoeveel);
    this.repaint();
  }

Zoals je ziet wordt de variabele waarmee je de y-waarde verandert alleen nog maar in de run methode gewijzigd. Anders wordt deze steeds groter en wordt ook de ruimte tussen de plaatjes steeds groter.

temp++ kan natuurlijk ook temp+=5 oid worden, dan is de ruimte groter, maar dan is 560 misschien weer iets teveel ;)

Hoop je dat je hier alvast iets aan hebt..
:)
 
Laatst bewerkt:
1000 maal bedankt man !!!

Heb het juist eens getest en omgezet naar een g.drawImage en dat werkt :D :D :D .

Nu kan ik eindelijk verder, Merci !!!

Jelle
 
Hmmm, nu willen die threads nog niet werken.
Als de 1 thread loopt doet de andere niks nemeer :mad:
 
Japie82, merci voor alle hulp !!!

Het programma bolt nu :D :D

Merci !!


Jelle
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan