in libs/game/controller.ts [24:63]
export function controlSprite(sprite: Sprite, vx: number, vy: number) {
if (!sprite) return;
if (!controlledSprites) {
controlledSprites = [];
game.currentScene().eventContext.registerFrameHandler(19, () => {
controlledSprites.forEach(controlled => {
if (controlled.vx) {
controlled.s.vx = 0;
if (controller.right.isPressed() || controller.B.isPressed()) {
controlled.s.vx = controlled.vx;
}
if (controller.left.isPressed() || controller.A.isPressed()) {
controlled.s.vx = -controlled.vx;
}
}
if (controlled.vy) {
controlled.s.vy = 0;
if (controller.down.isPressed()) {
controlled.s.vy = controlled.vy;
}
if (controller.up.isPressed()) {
controlled.s.vy = -controlled.vy;
}
}
});
});
}
for (let i = 0; i < controlledSprites.length; i++) {
if (controlledSprites[i].s.id === sprite.id) {
controlledSprites[i].vx = vx;
controlledSprites[i].vy = vy;
return;
}
}
controlledSprites.push({ s: sprite, vx: vx, vy: vy });
}