Für den Fall das jemand ein Ähnliches Problem hat Habe ich mir eine alternative ausgedacht.
Zu dem muss ich sagen das ich mein hintergrund bewege und Mein Sprite an einer stelle lasse
Für die schwerkraft hab ich eine methode gschrieben die sobald mein Sprite über Position y 0 ist ich ihn kontinuirlich fallen lassen
//
public boolean fall(){
if (sprite.getY() > 1){
sprite.translateY(-schwerkraft+2);
fallen = true;
}else {
fallen = false;
}
return fallen;
}
Ein Boolean um zu checken ob ich im Sprung bin oder nicht. und ein Boolean der überprüft ob ich nach Rechts laufe oder nicht (oder Nicht kann man auch als nach links laufen sehen rechts = false; )
if(sprite.getY() < (1080-img_height)){
if(Gdx.input.isKeyJustPressed(Input.Keys.SPACE) && im_sprung == false&& fallen == false){
im_sprung = true;
pressToWalk = false;
}
if( im_sprung == true)
if (sprite.getY()< 500){
isOnAir = true;
//
new_pos_y muss größer als die gravitation sein
sprite.translateY(new_pos_y);
new_pos_y += 10;
}
else{
im_sprung = false;
new_pos_y = 10;
pressToWalk = true;
fallen = true;
}
}
// wenn ich nach rechts schaue soll der Hintergrund beim Springen und Fallen - speed genomen werden gb_pos_x steht für GameBackground_position_x das wurde in der render methode festgelegt mit batch.draw(gameBackground, gb_pos_x, 0);
if(im_sprung == true&& rechts == true){
gb_pos_x -= speed;
} if (rechts == true && fallen == true){
gb_pos_x -= speed;
}
if(im_sprung == true&& rechts == false){
gb_pos_x += speed;
} if (rechts == false && fallen == true){
gb_pos_x += speed;
}
}