This commit is contained in:
2025-09-26 09:31:46 +08:00
parent f5d5939f29
commit 4f486b367f
64 changed files with 758 additions and 153 deletions

View File

@@ -3,9 +3,13 @@ package uno.mloluyu.util;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
public class ClearScreen {
public ClearScreen() {
/** 清屏工具:改为静态方法避免每帧 new 对象。 */
public final class ClearScreen {
private ClearScreen() {
}
public static void clear() {
Gdx.gl.glClearColor(0.3F, 0.3F, 0.5F, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
}
}
}

View File

@@ -0,0 +1,32 @@
package uno.mloluyu.util;
/**
* 全局游戏常量集中放置。
*/
public final class GameConstants {
/**
* 地面空气墙Y 坐标。抬高后便于更好构图。
*/
public static final float GROUND_Y = 180f; // 可按需要再调
// 角色移动/物理参数(集中配置便于统一手感调节)
// 用户要求:速度 *2跳跃 *3基于当前 520 / 1250
public static final float MOVE_SPEED = 1040f; // 520 *2 (最初 ~300)
// 调低跳跃:更低高度 + 更短滞空v0 ↓,同时重力 ↑
// 说明:上升时间 t_up = v0 / g本次取 v0=1500, g=3200 =>
// t_up≈0.47s总滞空≈0.94s,高度≈(v0^2)/(2g)≈351
// 若想再更低JUMP_SPEED 1400 + GRAVITY 3400再更高一点JUMP_SPEED 1600 + GRAVITY 3000。
public static final float JUMP_SPEED = 1500f;
public static final float GRAVITY = 3200f; // 加大重力让落地更快
// 调试命中盒渲染缩放(=1 表示真实大小;之前放大 3.6 现在回归可控)
// 调试盒缩放1 = 实际大小;若想放大显示结构,可调大。
public static final float DEBUG_BOX_SCALE = 1.0f;
// 是否按中心放大true 则保持角色中心位置,不会视觉漂移)
public static final boolean DEBUG_SCALE_FROM_CENTER = true;
// (可选)相机或后续平衡参数也可集中放这里
private GameConstants() {
}
}

View File

@@ -0,0 +1,12 @@
package uno.mloluyu.util;
/** 统一资源常量,避免魔法字符串散落。 */
public final class ResourcePaths {
private ResourcePaths() {
}
public static final String LOGO = "logo.png";
public static final String FONT_MAIN = "FLyouzichati-Regular-2.ttf";
public static final String CHARACTER_ROOT = "character/";
public static final String UI_SKIN_JSON = "ui/uiskin.json";
}

View File

@@ -0,0 +1,13 @@
package uno.mloluyu.util;
/** 限制delta时间防止窗口拖拽/卡顿后出现物理跳跃。 */
public final class TimeStepLimiter {
private TimeStepLimiter() {
}
private static final float MAX_DELTA = 1f / 30f; // 上限: 相当于最低30FPS
public static float clamp(float delta) {
return delta > MAX_DELTA ? MAX_DELTA : Math.max(delta, 0f);
}
}