Efekt powolnego wznoszenia

Odpowiedz Nowy wątek
2014-12-14 21:40
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ć?

Pozostało 580 znaków

2014-12-14 21:51
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.

edytowany 1x, ostatnio: spartanPAGE, 2014-12-14 22:09

Pozostało 580 znaków

2014-12-14 22:16
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?

Pozostało 580 znaków

2014-12-14 22:23
0

x to niewiadoma - przyspieszenie.

Pozostało 580 znaków

2014-12-15 21:18
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ć?

edytowany 1x, ostatnio: rubesom, 2014-12-15 21:19

Pozostało 580 znaków

2014-12-15 23:10
niezalogowany
0

Do poczytania:
https://github.com/libgdx/libgdx/wiki/Interpolation

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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