# Hintergrund zum Laufen bringen



## Frohlok (21. Feb 2012)

Hallo liebe User,

zur Zeit programmieren wir in Informatik ein Spiel, dass wie Doodle Jump aufgebaut sein soll.
Wir haben bloß ein Problem.
Wir wissen nicht, wie wir das Hintergrundbild zum alleinigen Durchlauf bringen sollen.

Ich würde mich über eure Hilfe freuen.

Danke im voraus.


----------



## XHelp (21. Feb 2012)

Da musst du schon etwas genauer werden: was bedeutet "Hintergrundbild"? Wo genau habt ihr ein Problem?


----------



## Frohlok (21. Feb 2012)

Erstmal vielen Dank.

Unser Applet ist 600/750 groß ujnd unser Bild ist 2400/750 groß. Wir wollen, dass ein Bildausschnitt die ganze Zeit durchläuft


----------



## Fu3L (21. Feb 2012)

Habt ihr schon so etwas wie einen GameLoop oder fängt das Problem schon damit an, dass ihr nicht wisst, wie ihr etwas alle x Millisekunden ausführen sollt?


----------



## Quaxli (21. Feb 2012)

Frohlok hat gesagt.:


> Erstmal vielen Dank.
> 
> Unser Applet ist 600/750 groß ujnd unser Bild ist 2400/750 groß. Wir wollen, dass ein Bildausschnitt die ganze Zeit durchläuft



Euer Hintergrundbild ist zu groß. Das wird vermutlich zu Performance-Problemen führen.

Ihr solltet Euer Bild in mehrere Tiles aufteilen und entsprechende Logik einbauen, welche die gerade benötigten/sichtbaren Teile zeichnet und bewegt.


----------



## Frohlok (21. Feb 2012)

Also wir haben es jetzt geschafft, dass der Hintergrund durchläuft

Jetzt müssen wir es schaffen, dass der Hintergrund sich nur in einzelnen Stücken bewegt.
Also wir sind noch am überlegen wie hoch der sogenannte "Doodle" springt und ab einer bestimmten Stelle im Applet sich dann um ein Stückchen das Hintergrundbild nach unten bewegt.

Wer den fertigen Programmcode vom durchlaufen sehen will einfach melden


----------



## Quaxli (21. Feb 2012)

Frohlok hat gesagt.:


> ...
> Wer den fertigen Programmcode vom durchlaufen sehen will einfach melden



Alle?


----------



## Frohlok (23. Feb 2012)

```
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 21.02.2012
  * @author
  */

public class Bewegen extends Applet implements Runnable {
  // Anfang Attribute

  Bild2 jahreszeit;
  Thread bewegung;
  boolean bewegungGeht;
  // Ende Attribute

  public void init() {
  
  this.setSize(600,750);

    // Anfang Komponenten
    
      jahreszeit = new Bild2(this);
    
    bewegungGeht = true;
      bewegung = new Thread(this);
      bewegung.start();

    // Ende Komponenten

  }
  // Anfang Methoden

     public void paint (Graphics bildobjekt) {

      jahreszeit.zeichne(bildobjekt);

  }

  public void run(){
     while (bewegungGeht){
       jahreszeit.setY1(jahreszeit.getY1()-1);
       jahreszeit.setY2(jahreszeit.getY2()-1);
       repaint();
       try {
         bewegung.sleep(50);
       }
       catch (InterruptedException fehler){

       }
     }
  }
  
  // Ende Methoden

}
```


----------



## Frohlok (25. Feb 2012)

Kann mir keiner weiterhelfen mit dem Hintergrundbild was stückchenhaft runterlaufen soll?


----------



## L-ectron-X (25. Feb 2012)

Was meinst du mit _stückchenhaft_?
BTW: Kannst du deinen Account nicht aktivieren?


----------



## Scarabol (25. Feb 2012)

Hi,

ich häng mich auch ma rein.

Ihr wollt das das Hintergrundbild scrollt?
1. Wie schon gesagt zerlegt, dass Hintergrundbild in kleinere Stücke. z.B. 400/750 oder 400/375+400/375.

2. Um das Bild nun konitnuierlich zu scrollen zählt ihr eine Variable "scrollY" einfach hoch:

```
int scrollY = 0;
// ...
while (true) {
// ...
scrollY++;
if (scrollY > 400) { // 400 ist die gleiche Höhe die eure Tiles haben
  scrollY = 0;
}
// ...
}
// ...
```

Beim Rendern:

```
drawImage(img, x, y+scrollY, this);
```

Gruß
Scarabol


----------



## Frohlok (29. Feb 2012)

Danke

Wir müssen jetzt nur noch alles zusammenfügen und dann sind wir fertig


----------

