chore: use libGDX functions instead of System.currentTimeMillis
This commit is contained in:
@ -6,6 +6,7 @@ import org.vibecoders.moongazer.Game;
|
||||
import org.vibecoders.moongazer.State;
|
||||
import org.vibecoders.moongazer.managers.Assets;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||
@ -17,8 +18,8 @@ import com.badlogic.gdx.utils.ScreenUtils;
|
||||
public class Intro extends Scene {
|
||||
private Texture logo;
|
||||
private Game game;
|
||||
private long startTime;
|
||||
private long endTime = 0;
|
||||
private float totalTime = 0;
|
||||
private boolean end = false;
|
||||
|
||||
/**
|
||||
* Initializes the intro scene, starts loading assets.
|
||||
@ -26,7 +27,6 @@ public class Intro extends Scene {
|
||||
public Intro(Game game) {
|
||||
this.game = game;
|
||||
logo = Assets.getAsset("icons/logo.png", Texture.class);
|
||||
startTime = System.currentTimeMillis() + 500;
|
||||
log.info("Starting to load all remaining assets...");
|
||||
Assets.loadAll();
|
||||
// Create scenes
|
||||
@ -42,7 +42,9 @@ public class Intro extends Scene {
|
||||
*/
|
||||
@Override
|
||||
public void render(SpriteBatch batch) {
|
||||
if (System.currentTimeMillis() > endTime + 2000 && endTime != 0) {
|
||||
totalTime += Gdx.graphics.getDeltaTime();
|
||||
log.trace("Intro total time: {}", totalTime);
|
||||
if (totalTime > 5f) {
|
||||
if (game.transition == null) {
|
||||
Assets.waitUntilLoaded();
|
||||
log.info("All assets loaded successfully.");
|
||||
@ -53,12 +55,12 @@ public class Intro extends Scene {
|
||||
}
|
||||
ScreenUtils.clear(Color.BLACK);
|
||||
// log.debug("Rendering logo at position: ({}, {})", WINDOW_WIDTH / 2 - logo.getWidth() / 4, WINDOW_HEIGHT / 2 - logo.getHeight() / 4);
|
||||
var currentOpacity = (float) (System.currentTimeMillis() - startTime) / 1000;
|
||||
var currentOpacity = totalTime;
|
||||
if (currentOpacity > 1) {
|
||||
if (endTime == 0) {
|
||||
endTime = System.currentTimeMillis() + 2000;
|
||||
if (!end) {
|
||||
end = true;
|
||||
}
|
||||
currentOpacity = 1 - ((float) (System.currentTimeMillis() - endTime) / 1000);
|
||||
currentOpacity = 5f - totalTime;
|
||||
}
|
||||
// Multiply with any externally applied alpha (e.g., Transition)
|
||||
float externalAlpha = batch.getColor().a;
|
||||
|
||||
@ -18,6 +18,7 @@ import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputListener;
|
||||
import com.badlogic.gdx.utils.TimeUtils;
|
||||
import com.badlogic.gdx.video.VideoPlayer;
|
||||
import com.badlogic.gdx.video.VideoPlayerCreator;
|
||||
|
||||
@ -133,7 +134,7 @@ public class MainMenu extends Scene {
|
||||
@Override
|
||||
public boolean keyDown(InputEvent event, int keycode) {
|
||||
sKeyDown(event, keycode);
|
||||
currentKeyDown.put(keycode, System.currentTimeMillis());
|
||||
currentKeyDown.put(keycode, TimeUtils.millis());
|
||||
return true;
|
||||
}
|
||||
});
|
||||
@ -201,9 +202,9 @@ public class MainMenu extends Scene {
|
||||
for (Map.Entry<Integer, Long> entry : currentKeyDown.entrySet()) {
|
||||
Integer keyCode = entry.getKey();
|
||||
Long timeStamp = entry.getValue();
|
||||
if (System.currentTimeMillis() - timeStamp > 100) {
|
||||
if (TimeUtils.millis() - timeStamp > 100) {
|
||||
sKeyDown(null, keyCode);
|
||||
currentKeyDown.put(keyCode, System.currentTimeMillis());
|
||||
currentKeyDown.put(keyCode, TimeUtils.millis());
|
||||
}
|
||||
}
|
||||
startVideoOnce();
|
||||
|
||||
@ -3,6 +3,7 @@ package org.vibecoders.moongazer.scenes;
|
||||
import org.vibecoders.moongazer.Game;
|
||||
import org.vibecoders.moongazer.State;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||
|
||||
/**
|
||||
@ -12,11 +13,12 @@ public class Transition extends Scene {
|
||||
private Scene from;
|
||||
private Scene to;
|
||||
private State targetState;
|
||||
private long startTime;
|
||||
private float totalTime = 0f;
|
||||
private long duration;
|
||||
|
||||
/**
|
||||
* Creates a new transition between two scenes.
|
||||
*
|
||||
* @param from The scene to transition from.
|
||||
* @param to The scene to transition to.
|
||||
* @param targetState The target state of the game after the transition.
|
||||
@ -30,16 +32,17 @@ public class Transition extends Scene {
|
||||
this.to = to;
|
||||
this.targetState = targetState;
|
||||
this.duration = duration;
|
||||
startTime = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders the transition effect.
|
||||
*
|
||||
* @param batch The SpriteBatch to draw with.
|
||||
*/
|
||||
@Override
|
||||
public void render(SpriteBatch batch) {
|
||||
var toOpacity = ((float) (System.currentTimeMillis() - startTime)) / duration;
|
||||
totalTime += Gdx.graphics.getDeltaTime();
|
||||
var toOpacity = totalTime / (((float) duration) / 1000);
|
||||
if (toOpacity >= 0.99) {
|
||||
log.trace("Transition complete to state: {}", targetState);
|
||||
game.state = targetState;
|
||||
|
||||
Reference in New Issue
Block a user