miaoda-game-path-cocos
v0.3.2
Published
Cocos Creator skin for miaoda-game-path-core: a PathMover component that drives a Node's position and rotation along a baked path at constant speed, with tangent-facing rotation and sine sway. The reusable movement layer for enemy fly-in formations, movin
Downloads
70
Maintainers
Readme
miaoda-game-path-cocos
Use this Cocos Creator adapter to move a node along a baked miaoda-game-path-core route at constant speed. PathMover writes local position and optional tangent rotation from Cocos update(dt).
Install and use
pnpm add miaoda-game-path-core miaoda-game-path-cocosCocos Creator provides the optional cc peer dependency at runtime.
import { BakedPath, SplinePath } from 'miaoda-game-path-core';
import { PathMover } from 'miaoda-game-path-cocos';
const baked = new BakedPath(new SplinePath([
{ x: 900, y: 700 }, { x: 500, y: 620 },
{ x: 220, y: 520 }, { x: 480, y: 420 },
]));
enemy.addComponent(PathMover).setup(baked, {
speed: 260,
mode: 'clamp',
rotationOffset: -90,
sway: { amplitude: 18, frequency: 1.2 },
onArrive: () => enemyBrain.beginCombat(),
});Path coordinates are local to the node's parent. rotateToPath defaults to true; use rotationOffset when sprite art faces a direction other than +X. onArrive fires once for a clamped follower reaching the end.
Use setSpeed, seek, and done for runtime control. Movement values must be finite; the component owns only scripted path transforms, not collision or the actor's next behavior.
For strict fixed-step ownership, add tickSource: 'manual' to the existing setup options:
const mover = enemy.addComponent(PathMover).setup(baked, {
speed: 260,
tickSource: 'manual',
});
fixedStepper.advance(frameDeltaSeconds, (dtSeconds) => {
mover.stepSimulation(dtSeconds);
});In manual mode, Cocos update(dt) is inert. stepSimulation advances the core follower, writes the Node transform, and fires onArrive on the same gameplay tick. setTicking(false) is an independent local pause. Invalid setup is atomic, and invalid seconds or calls after destruction fail before movement.
