2016-03-02 38 views
0

我正在開發一個項目,我正在學習LibGDX,但到目前爲止,該項目一直進展順利,但是,本教程沒有介紹如何提高速度經過一段時間後,ex(10秒過後,我希望我的敵人將速度提高到0.1f,這意味着10%,並且在經過10秒鐘後,自動將速度提高到0.2f並且等等)。這是我需要改變的代碼的唯一部分,以使他們的敵人提高他們的速度public static final Vector2 ENEMY_LINEAR_VELOCITY = new Vector2(-10f, 0);教程在這裏('http://williammora.com/a-running-game-with-libgdx-part-1/')我該怎麼做?有人可以幫我嗎?我將不勝感激!Android Studio,LibGDX在經過一定時間後自動提高速度

常量類:

package com.avoidcrashjump; 

import com.badlogic.gdx.math.Vector2; 


/** 
* Created by Felipe on 2/29/2016. 
*/ 
public class Constants { 
    public static final int APP_WIDTH = 1024; 
    public static final int APP_HEIGHT = 640; 

    public static final Vector2 WORLD_GRAVITY = new Vector2(0, -10); 

    public static final float GROUND_X = 0; 
    public static final float GROUND_Y = 0; 
    public static final float GROUND_WIDTH = 50f; 
    public static final float GROUND_HEIGHT = 2f; 
    public static final float GROUND_DENSITY = 0f; 
    public static final float PLAYER_X = 2; 
    public static final float PLAYER_Y = GROUND_Y + GROUND_HEIGHT; 
    public static final float PLAYER_WIDTH = 1f; 
    public static final float PLAYER_HEIGHT = 1f; 
    public static final float PLAYER_GRAVITY_SCALE = 2.5f; 
    public static float PLAYER_DENSITY = 0.5f; 
    public static final float PLAYER_DODGE_X = 2f; 
    public static final float PLAYER_DODGE_Y = 1.5f; 
    public static final Vector2 PLAYER_JUMPING_LINEAR_IMPULSE = new Vector2(0,13f); 
    public static final float PLAYER_HIT_ANGULAR_IMPULSE = 10f; 
    public static final float ENEMY_X = 25f; 
    public static final float ENEMY_DENSITY = PLAYER_DENSITY; 
    public static final float RUNNING_SHORT_ENEMY_Y = 1.5f; 
    public static final float RUNNING_LONG_ENEMY_Y = 2f; 
    public static final float FLYING_ENEMY_Y = 3f; 
    public static final Vector2 ENEMY_LINEAR_VELOCITY = new Vector2(-10f, 0); 


} 

回答

1

你的類被命名爲Constants,你的速度是使用final聲明。班級名稱告訴我們,我們不應該試圖改變這些,final不允許我們這樣做。

但是,如果您更改您的變量聲明(將其移動到某處並刪除final關鍵字)。爲了讓它增加,你可以使用Gdx.graphics.getDeltaTime()

創建一個變量來計算時間的流逝:

float timer = 0; 

然後在渲染()方法

timer += Gdx.graphics.getDeltaTime(); //returns time between two frames 
if(timer > 10) { //after 10 seconds 
    speed = speed * 1.1F; 
    timer = 0; //reset timer 
}