<?phpnamespace App\Scene;use JumPHP\Renderer\Renderer;use JumPHP\Scene\AbstractScene;/** * The entry of bin/jumphp video:make (project.yaml video.scene): it only starts the scene of the `template` param * (gap | multiply | rings | marble | zoom | stairs | tunnel | spiral | checker | ripple | dominos | cats | rain | pendulum | plinko) * with the same params (seed, seconds, lang, title, captions...), straight away. */final class FilmScene extends AbstractScene{ public const TEMPLATES = [ 'gap' => GapCircleScene::class, 'multiply' => MultiplyScene::class, 'rings' => ConcentricScene::class, 'marble' => MarbleScene::class, 'zoom' => ZoomRingsScene::class, 'stairs' => StairsScene::class, 'tunnel' => TunnelScene::class, 'spiral' => SpiralScene::class, 'checker' => WaveGridScene::class, 'ripple' => DotRippleScene::class, 'dominos' => DominoScene::class, 'cats' => CatBounceScene::class, 'rain' => RainPondScene::class, 'pendulum' => PendulumScene::class, 'plinko' => PlinkoScene::class, ]; public function enter(array $params = []): void { $class = self::TEMPLATES[(string)($params['template'] ?? 'gap')] ?? GapCircleScene::class; $this->scenes()->switchTo($class, $params, false); } public function update(float $dt): void { } public function render(Renderer $r): void { $r->clear([8, 8, 16]); }}