Hallo,
ich versuche gerade bei meinem Spiel die Spielfigur springen zu lassen.
Sie soll, wenn die Taste W gedrückt wird einfach hoch springen und wieder runter kommen.
Habe das leider nicht hinbekommen.
Hier ist der aktuelle Sourcecode:
Ich habe versucht einfach nachdem die Taste W gedrückt wurde die ypos 40mal zu erhöhen.
Leider ist die Figur nicht langsam nach oben gesprungen und wieder runter, sondern extrem schnell. Danach dachte ich mir, ich brauche nur ein "Thread.sleep(ms)" um das ganze einfach langsam ablaufen zu lassen. Hat auch nicht funktioniert.
Wie kann ich das machen?
ich versuche gerade bei meinem Spiel die Spielfigur springen zu lassen.
Sie soll, wenn die Taste W gedrückt wird einfach hoch springen und wieder runter kommen.
Habe das leider nicht hinbekommen.
Hier ist der aktuelle Sourcecode:
Java:
public class PongGame extends BasicGame {
public SpriteSheet spriteSheet;
public Animation spriteAnimation;
public SpriteSheet zigarette;
public Animation zigaretteAnimation;
private public Input in;
private int xpos =300;
private int ypos =300;
private int animieren;
public PongGame() {
super("Pong");
}
public void init(GameContainer gc) throws SlickException {
spriteSheet = new SpriteSheet("spieler.png", 40, 40);
spriteAnimation = new Animation(spriteSheet, 200);
zigarette = new SpriteSheet("Rauchen.png", 40,40);
zigaretteAnimation = new Animation(zigarette, 1);
in = gc.getInput();
}
public void update(GameContainer gc, int delta) throws SlickException {
if(in.isKeyDown(in.KEY_W)){
ypos = ypos-1;
animieren=2;
}
else if(in.isKeyDown(in.KEY_S)){
ypos = ypos+1;
animieren=1;
}
else if(in.isKeyDown(in.KEY_D)){
xpos = xpos+1;
animieren=1;
}
else if(in.isKeyDown(in.KEY_A)){
xpos = xpos-1;
animieren=1;
}
else{
animieren=0;
}
}
public void render(GameContainer gc, Graphics g) throws SlickException {
if(animieren == 2){
spriteAnimation.draw(xpos, ypos);
}
else if(animieren == 1){
spriteAnimation.draw(xpos, ypos);
}
else{
zigaretteAnimation.draw(xpos, ypos);
}
}
public static void main(String[] args) throws SlickException {
AppGameContainer pong = new AppGameContainer(new PongGame());
pong.setDisplayMode(600, 600, false);
pong.setVSync(true);
pong.setTargetFrameRate(100);
pong.setShowFPS(true);
pong.start();
}
}
Ich habe versucht einfach nachdem die Taste W gedrückt wurde die ypos 40mal zu erhöhen.
Leider ist die Figur nicht langsam nach oben gesprungen und wieder runter, sondern extrem schnell. Danach dachte ich mir, ich brauche nur ein "Thread.sleep(ms)" um das ganze einfach langsam ablaufen zu lassen. Hat auch nicht funktioniert.
Wie kann ich das machen?