Efekt powolnego wznoszenia

0

Cześć

Mam obiekt, który ma się wznosić na odpowiednią wysokość, niby działa ale wznosi się za szybko:

		
if(Gdx.input.isKeyJustPressed(Keys.SPACE)){
			gameObject1.y += 80 * Gdx.graphics.getDeltaTime() * 50;
		}
		else{
			gameObject1.y -= 80 * Gdx.graphics.getDeltaTime();
		} 

Opadanie mogę sobie odpowiednio modyfikować (jego prędkość) ale przy zwiększaniu wartości (dodatnich, +y) przemieszczenie obiektu jest skokowe a chciałem osiągnąć większą płynność. Zmieniałem doświadczalnie te wartość ale używam

isKeyJustPressed 

przez co jest ten skok przy zmianie wartości. Musi być konkretnie JustPressed a nie samo Pressed.
Da się to jakoś rozwiązać?

0

Użyj wartości 0 < x < 1 dla przyspieszenia;
Przez krótką chwilę na początku możesz użyć funkcji kwadratowej, aby uzyskać płynny efekt.

0
spartanPAGE napisał(a):

Użyj wartości 0 < x < 1 dla przyspieszenia;
Przez krótką chwilę na początku możesz użyć funkcji kwadratowej, aby uzyskać płynny efekt.

Nie rozumiem do czego miał bym to przypisać? Do zmiany wartości "y" czy do zmiany czasu? Czy jeszcze inaczej?

0

x to niewiadoma - przyspieszenie.

0
spartanPAGE napisał(a):

x to niewiadoma - przyspieszenie.

Zrobiłem tak jak umiałem ale nie działa do końca, bo przestaje reagować na naciśnięcie spacji po chwili:
Wznoszenie:

	public float jumpVelocity;
	
	public void jump(){
		if(jumpVelocity >= -100){
			jumpVelocity +=150;
		}
	} 

W polu update:

	public float gravity = -3f; 
		gameObject1.y += gameObject1.jumpVelocity * Gdx.graphics.getDeltaTime();
		if(gameObject1.y > 0){
			gameObject1.jumpVelocity += gravity;
  		}

		
		if(Gdx.input.isKeyJustPressed(Keys.SPACE)){
			gameObject1.jump();
		}

Co muszę zmienić?

1 użytkowników online, w tym zalogowanych: 0, gości: 1