[Slick2d] Sidescroller/Hintergrundbild sehr langsam

LEjava

Mitglied
Hallo alle zusammen!

Ich habe ein Jump'n'Run Spiel programmiert nur leider wird es sehr langsam sobald ich den Hintergrund rendere. Es ist eigentlich ein Sidescroller gedacht mit drei Bildern (550 x 350, á 200kB). Jedoch tritt das Problem auch auf wenn ich nur ein Bild statisch (ohne das es sich bewegt/mitläuft) rendere.

Ansonsten läuft das Spiel mit all seinen Animationen, Gegnern und Objekte sehr gut.

Gibt es dafür eine Lösungsidee oder sind solche Bilder dafür einfach zu groß?

Hier ein Auszug aus dem Programm:

Java:
    @Override
    public void init(GameContainer gc) throws SlickException {
        
        input = gc.getInput();        
        
        backgrounds.add(new Background("GameData/Pictures/bg/11.png",0));
        backgrounds.add(new Background("GameData/Pictures/bg/22.png",
                backgrounds.get(0).getWidth()));
        backgrounds.add(new Background("GameData/Pictures/bg/33.png",
                backgrounds.get(1).getWidth() + backgrounds.get(0).getWidth()));
        
   ...
   }
   @Override
    public void update(GameContainer gc, int i) throws SlickException {
        
        if(input.isKeyDown(input.KEY_RIGHT) && player.isMaxRight()){            

            for(Background bg : backgrounds)
                bg.decPosition(player.getSpeed());
            ...
    }

    @Override
    public void render(GameContainer gc, Graphics g) throws SlickException {

        for(Background bg : backgrounds){
            g.drawImage(bg.getImage(), bg.getPosition() ,0);
        }
   ...
   }

}

public class Background {
    private int width;
    private int position;
    private Image image;

    public Background(Image image,int position ) {
        this.position = position;
        this.image = image;
        this.width = image.getWidth();
    }
    
    public Background(String path, int position) throws SlickException{
        this.position = position;
        this.image = new Image(path);
        this.width = image.getWidth();
    }


    public int getWidth() {
        return width;
    }

    public int getPosition() {
        return position;
    }

    public Image getImage() {
        return image;
    }

    public void setPosition(int position) {
        this.position = position;
    }
    
    public void decPosition(int decr) {
        this.position -= decr;
    }
    
    public void changeImage(Image image){
        this.image = image;
        this.width = image.getWidth();
    }
    
    
    
}

Viele Grüße

LEjava
 

LEjava

Mitglied
Ich habe nun ein einziges SpriteSheet ohne die Klasse Background verwendet und nun ist es etwas besser geworden. FPS bei ca 30. Allerdings ruckelt es manchal als ob die Grafik nicht so ganz mit kommt.

Bin immer noch für Ideen sehr dankbar!
 

Foxei

Bekanntes Mitglied
Mach deine Canvis durchsichtig und Render das Bild als Hintergrund auf einem Compoennt der dahinter platziert ist. Und Repainte den weniger häufig.
Oder weise deiner Anwendung mehr Ram und einen OPEN GL Force zu (via start Parameter)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R 2D-Grafik Buttons mit Slick2D und LWJGL AWT, Swing, JavaFX & SWT 2
T Hintergrundbild einfügen AWT, Swing, JavaFX & SWT 1
L Hintergrundbild im Fenster darstellen AWT, Swing, JavaFX & SWT 9
R Java, GUI, Hintergrundbild, Image, AWT, Swing, JavaFX & SWT 4
H Hintergrundbild in einem Programm AWT, Swing, JavaFX & SWT 4
snipesss Hintergrundbild in JOptionPane.showInputDialog? AWT, Swing, JavaFX & SWT 4
M Hintergrundbild wird nicht angezeigt AWT, Swing, JavaFX & SWT 1
O Vollbildmodus mit Hintergrundbild AWT, Swing, JavaFX & SWT 8
A jpanel mit gridbaglayout auf hintergrundbild AWT, Swing, JavaFX & SWT 7
Mr. Pink AWT Anzeigeproblem JPanel/Hintergrundbild AWT, Swing, JavaFX & SWT 1
H Swing Hintergrundbild in einen JFrame einfügen AWT, Swing, JavaFX & SWT 7
T Hintergrundbild in JTextPane fixieren AWT, Swing, JavaFX & SWT 2
M Auf einem Hintergrundbild zeichnen AWT, Swing, JavaFX & SWT 2
SexyPenny90 Hintergrundbild mit Swing AWT, Swing, JavaFX & SWT 3
C Eigenes Hintergrundbild einfügen AWT, Swing, JavaFX & SWT 6
P AWT Hintergrundbild in Hauptframe AWT, Swing, JavaFX & SWT 3
J Hintergrundbild für JFrame AWT, Swing, JavaFX & SWT 6
T 2D-Grafik Statisches Hintergrundbild, dynamische Bilder drüber AWT, Swing, JavaFX & SWT 2
F Hintergrundbild im Frame AWT, Swing, JavaFX & SWT 11
H Hintergrundbild in jTextArea AWT, Swing, JavaFX & SWT 4
N AWT Hintergrundbild AWT, Swing, JavaFX & SWT 2
R 2D-Grafik Hintergrundbild für JFrame AWT, Swing, JavaFX & SWT 4
E JButton mit hintergrundbild AWT, Swing, JavaFX & SWT 4
J Swing Hintergrundbild auf einem JFrame AWT, Swing, JavaFX & SWT 7
G Swing Komponenten dem Hintergrundbild des JPanels anpassen? AWT, Swing, JavaFX & SWT 6
B Wie ein Hintergrundbild einfügen??? AWT, Swing, JavaFX & SWT 18
I JPanel mit Hintergrundbild, setOpaque AWT, Swing, JavaFX & SWT 10
C Label Hintergrundbild mit Text AWT, Swing, JavaFX & SWT 6
S Applet - Aerger mit dem Hintergrundbild - JLabel und JTextfield AWT, Swing, JavaFX & SWT 7
F hintergrundbild für jtable als jscrollpane AWT, Swing, JavaFX & SWT 10
J Hintergrundbild des JFrames lässt Textboxen verschwinden? AWT, Swing, JavaFX & SWT 4
H hintergrundbild fixieren AWT, Swing, JavaFX & SWT 3
N Swing Hintergrundbild in einer JScrollpane AWT, Swing, JavaFX & SWT 2
dl85hej Hintergrundbild AWT, Swing, JavaFX & SWT 2
C JPanel mit Hintergrundbild AWT, Swing, JavaFX & SWT 30
U JList mit Hintergrundbild hinterlegen und noch ne Frage AWT, Swing, JavaFX & SWT 4
C Hintergrundbild ohne Repaint AWT, Swing, JavaFX & SWT 9
G Jpanel mit Hintergrundbild füllen? AWT, Swing, JavaFX & SWT 6
G 2x JPanel im JScrollPane (Hintergrundbild in JScrollPane) AWT, Swing, JavaFX & SWT 9
E JPanel mit Hintergrundbild AWT, Swing, JavaFX & SWT 10
hdi panel hintergrundbild falsch implementiert ? AWT, Swing, JavaFX & SWT 9
Kidao Das Hintergrundbild überdeckt die Swing-Komponente AWT, Swing, JavaFX & SWT 5
C JdesktopPane Hintergrundbild AWT, Swing, JavaFX & SWT 6
N Hintergrundbild setzen AWT, Swing, JavaFX & SWT 4
L Frame mit Hintergrundbild? AWT, Swing, JavaFX & SWT 4
S JTextPane mit Hintergrundbild AWT, Swing, JavaFX & SWT 9
K Hintergrundbild an JFrame anpassen AWT, Swing, JavaFX & SWT 9
U bewegtes Hintergrundbild AWT, Swing, JavaFX & SWT 2
G Hintergrundbild auf JFrame oder JPanel AWT, Swing, JavaFX & SWT 3
F Text besser lesbar über Hintergrundbild AWT, Swing, JavaFX & SWT 6
G Hintergrundbild für JPanel AWT, Swing, JavaFX & SWT 4
S Hintergrundbild an Größe des JFrames anpassen AWT, Swing, JavaFX & SWT 4
G Problem mit Menü/Button auf Hintergrundbild AWT, Swing, JavaFX & SWT 10
D JTable - Hintergrundbild in Cell AWT, Swing, JavaFX & SWT 6
M Hintergrundbild und grafischer Button (Transparenz Probleme) AWT, Swing, JavaFX & SWT 3
H Hintergrundbild im Panel verschwindet sofort AWT, Swing, JavaFX & SWT 6
B Problem mit Hintergrundbild AWT, Swing, JavaFX & SWT 12
I Hintergrundbild bei awt container AWT, Swing, JavaFX & SWT 9
E hintergrundbild einfügen!! AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben