Код IT
← Каталог

Java — Java Survivors — Этап 11 — рывок (dash)

Фрагмент из «Java — Java Survivors»: Этап 11 — рывок (dash).

java spinoffencyclopedia9-04-razrabotka-igr-praktikum-razrabotki-igr-8 embed URL статья в энциклопедии
Java main.java
boolean isDashing = false;
double dashTimer = 0;
double dashCooldownTimer = 0;
static final double DASH_DURATION = 0.15;
static final double DASH_COOLDOWN = 1.4;
static final double DASH_SPEED_MULT = 4.0;

// keyPressed — внутри PLAYING:
if (e.getKeyCode() == KeyEvent.VK_SPACE && !isDashing && dashCooldownTimer <= 0) {
    isDashing = true;
    dashTimer = DASH_DURATION;
    dashCooldownTimer = DASH_COOLDOWN;
}

// в update после движения:
if (isDashing) {
    dashTimer -= dt;
    if (dashTimer <= 0) {
        isDashing = false;
    }
} else if (dashCooldownTimer > 0) {
    dashCooldownTimer -= dt;
}

// в updateMovement Player или в GamePanel перед вызовом player.updateMovement:
double speedMult = isDashing ? DASH_SPEED_MULT : 1.0;
// передайте speedMult в расчёт смещения (умножьте moveSpeed на speedMult)

// контактный урон — только если !isDashing
boolean isDashing = false;
double dashTimer = 0;
double dashCooldownTimer = 0;
static final double DASH_DURATION = 0.15;
static final double DASH_COOLDOWN = 1.4;
static final double DASH_SPEED_MULT = 4.0;

// keyPressed — внутри PLAYING:
if (e.getKeyCode() == KeyEvent.VK_SPACE && !isDashing && dashCooldownTimer <= 0) {
    isDashing = true;
    dashTimer = DASH_DURATION;
    dashCooldownTimer = DASH_COOLDOWN;
}

// в update после движения:
if (isDashing) {
    dashTimer -= dt;
    if (dashTimer <= 0) {
        isDashing = false;
    }
} else if (dashCooldownTimer > 0) {
    dashCooldownTimer -= dt;
}

// в updateMovement Player или в GamePanel перед вызовом player.updateMovement:
double speedMult = isDashing ? DASH_SPEED_MULT : 1.0;
// передайте speedMult в расчёт смещения (умножьте moveSpeed на speedMult)

// контактный урон — только если !isDashing