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:
Viele Grüße
LEjava
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