Skip to main content

Jumper3DBehavior

@zylem/game-lib


@zylem/game-lib / behavior / Jumper3DBehavior

Variable: Jumper3DBehavior

const Jumper3DBehavior: BehaviorDescriptor<Jumper3DBehaviorOptions, \{ getJumpsRemaining: () => number; getJumpsUsed: () => number; getState: () => Jumper3DState; isJumping: () => boolean; \}, Jumper3DEntity>

Defined in: node_modules/.pnpm/@zylem+behaviors@0.8.9_@types+react@19.3.0_react@19.3.0_three@0.185.1/node_modules/@zylem/behaviors/dist/jumper-3d.d.ts:124

Jumper3DBehavior — composable 3D jump behavior.

Provides height-based jumping, multi-jump, coyote time, jump buffering, variable jump height, configurable fall gravity, and optional air control.

Designed to compose with any movement controller (e.g. FirstPersonBehavior) — the controller writes X/Z velocity and Jumper3DBehavior writes Y velocity.

Example​

import { Jumper3DBehavior } from "@zylem/game-lib/behavior";

const jumper = player.use(Jumper3DBehavior, {
jumpHeight: 2.5,
gravity: 20,
maxJumps: 2,
coyoteTimeMs: 100,
jumpBufferMs: 80,
variableJump: { enabled: true, cutGravityMultiplier: 3 },
fall: { fallGravityMultiplier: 1.5 },
});

player.onUpdate(({ inputs }) => {
player.$jumper.jumpPressed = inputs.p1.buttons.A.pressed;
player.$jumper.jumpHeld = inputs.p1.buttons.A.held > 0;
player.$jumper.jumpReleased = inputs.p1.buttons.A.released;

const state = jumper.getState(); // Grounded | Jumping | Falling
});