### Load and Start Particle System (YueScript) Source: https://github.com/ippclub/dora-ssr/blob/main/Docs/docs/tutorial/50.Using Nodes/8.using-effect.mdx Provides an example of creating a particle system instance, registering a callback for completion, and starting particle emission using YueScript syntax. ```yue -- Import the Particle class _ENV = Dora -- Create a particle system object particle = Particle "effect.par" -- Register the particle system end callback particle\onFinished () -> print "Particle system ended" -- Start emitting particles particle\start! ``` -------------------------------- ### Install and Run Yarn Editor (Windows) Source: https://github.com/ippclub/dora-ssr/blob/main/Docs/docs/tutorial/120.dev-configuration.mdx Installs dependencies, builds the Yarn editor, and starts it for Windows. ```sh cd Tools\dora-dora && pnpm install pnpm build-yarn-editor pnpm start ``` -------------------------------- ### Quick Start Example in C# Source: https://github.com/ippclub/dora-ssr/blob/main/Tools/dora-cs/README.md Demonstrates a basic game loop using Dora-CS, including sprite creation, scheduled coroutines for timed events, and action-based animations. Ensure Dora.dll is accessible. ```csharp using Dora; using System.Collections; App.Run(() => { var node = new Sprite(Nvg.GetDoraSSR()); node.Schedule(Co.Once(run)); IEnumerator run() { for (int i = 3; i >= 1; i--) { Log.Info($"{i}"); yield return Co.Seconds(1.0); } Log.Info("Hello World"); node.Perform(ActionDef.Sequence( [ ActionDef.Scale(0.1f, 1.0f, 0.5f), ActionDef.Scale(0.5f, 0.5f, 1.0f, EaseType.OutBack), ])); } }); ``` -------------------------------- ### Start Local Development Server Source: https://github.com/ippclub/dora-ssr/blob/main/Docs/README.md Starts a local development server for live preview. Changes are reflected without a server restart. ```bash pnpm start ``` -------------------------------- ### Load and Start Particle System (Lua) Source: https://github.com/ippclub/dora-ssr/blob/main/Docs/docs/tutorial/50.Using Nodes/8.using-effect.mdx Demonstrates how to import the Particle class, create a particle system instance, register a callback for when the system finishes, and start emitting particles in Lua. ```lua -- Import the Particle class local Particle = require("Particle") -- Create a particle system object local particle = Particle("effect.par") -- Register the particle system end callback particle:onFinished(function() print("Particle system ended") end) -- Start emitting particles particle:start() ``` -------------------------------- ### Install and Run Yarn Editor (macOS) Source: https://github.com/ippclub/dora-ssr/blob/main/Docs/docs/tutorial/120.dev-configuration.mdx Installs dependencies, builds the Yarn editor, and starts it for macOS. ```sh cd Tools/dora-dora && pnpm install pnpm build-yarn-editor pnpm start ``` -------------------------------- ### start Source: https://github.com/ippclub/dora-ssr/blob/main/Docs/docs/api/Class/HttpServer.mdx Starts the HTTP server on the specified port. ```APIDOC ## start ### Description Starts the HTTP server on the specified port. ### Signature ```tl start: function(self: HttpServer, port: integer): boolean ``` ### Parameters #### Path Parameters - **port** (integer) - Required - The port number on which to start the server. ### Returns #### Success Response (boolean) - **return value** (boolean) - A boolean value indicating whether the server started successfully. ``` -------------------------------- ### Load and Start Particle System (TypeScript) Source: https://github.com/ippclub/dora-ssr/blob/main/Docs/docs/tutorial/50.Using Nodes/8.using-effect.mdx Illustrates importing the Particle class, creating a particle system instance, registering a callback for when the system finishes, and starting particle emission in TypeScript. ```ts // Import the Particle class import { Particle } from "Dora"; // Create a particle system object const particle = Particle("effect.par"); // Register the particle system end callback particle.onFinished(() => { print("Particle system ended"); }); // Start emitting particles particle.start(); ``` -------------------------------- ### Install monaco-editor-locales-plugin Source: https://github.com/ippclub/dora-ssr/blob/main/Tools/dora-dora/config/monaco-editor-locales-plugin/README.md Install the plugin using npm. ```bash npm install --save-dev monaco-editor-locales-plugin ``` -------------------------------- ### Start Particle Emission Source: https://github.com/ippclub/dora-ssr/blob/main/Docs/docs/api/Class/Particle.mdx Call the 'start' function to begin emitting particles from the system. ```tl start: function(self: Particle) ``` -------------------------------- ### Minimal Skill Example Source: https://github.com/ippclub/dora-ssr/blob/main/Assets/Doc/skills/skill-creator/SKILL.md A basic example of a SKILL.md file, including frontmatter and a simple body structure for an 'api-review' skill. ```markdown --- name: api-review description: Use this skill when the user asks for an API design or contract review. --- # API Review Use this skill when the user asks for an API design, contract, or request/response structure review. ## Steps 1. Read the relevant API definitions and call sites. 2. Check naming, consistency, error handling, and compatibility risks. 3. Output findings, risks, and suggested improvements. ``` -------------------------------- ### ECS Framework: Scene Setup, Movement System, and Rendering Sync Source: https://context7.com/ippclub/dora-ssr/llms.txt Implements a full Entity-Component-System example including scene setup, a per-frame movement system, and observers for reacting to component changes. Uses `Entity`, `Group`, and `Observer` for managing game logic. ```lua -- Lua: full ECS example — scene setup, movement system, rendering sync local Entity = require("Entity") local Group = require("Group") local Observer = require("Observer") local Sprite = require("Sprite") local Node = require("Node") local Vec2 = require("Vec2") local Scale = require("Scale") local Roll = require("Roll") local Ease = require("Ease") local Director = require("Director") -- Entity groups for querying local sceneGroup = Group {"scene"} local positionGroup = Group {"position"} -- React when a scene entity is added Observer("Add", {"scene"}):watch(function(_entity, scene) Director.entry:addChild(scene) scene:onTapEnded(function(touch) positionGroup:each(function(e) e.target = touch.location end) end) end) -- React when an image component is added: create sprite Observer("Add", {"image"}):watch(function(entity, image) sceneGroup:each(function(e) local sprite = Sprite(image) if sprite then sprite:runAction(Scale(0.5, 0, 0.5, Ease.OutBack)) sprite:addTo(e.scene) entity.sprite = sprite end return true end) end) -- React when sprite is removed: clean up Observer("Remove", {"sprite"}):watch(function(entity) entity.oldValues.sprite:removeFromParent() end) -- Per-frame movement system Group({"position", "speed", "target"}):watch(function(entity, position, speed, target) if target == position then return end local dir = (target - position):normalize() local newPos = (position + dir * speed):clamp(position, target) entity.position = newPos if newPos == target then entity.target = nil end entity.direction = math.deg(math.atan(dir.x, dir.y)) end) -- Rendering sync observer Observer("AddOrChange", {"position", "direction", "sprite"}):watch(function(entity, position, direction, sprite) sprite.position = position local last = entity.oldValues.direction or sprite.angle if math.abs(direction - last) > 1 then sprite:runAction(Roll(0.3, last, direction)) end end) -- Bootstrap entities Entity { scene = Node() } Entity { image = "Image/logo.png", position = Vec2.zero, direction = 45.0, speed = 4.0 } Entity { image = "Image/logo.png", position = Vec2(-100, 200), direction = 90.0, speed = 10.0 } ``` -------------------------------- ### Create Game Start Interface Source: https://github.com/ippclub/dora-ssr/blob/main/Docs/docs/example/10.First Game Tutorial/8.gameflow.mdx Sets up the initial game screen with a title and a start button. It manages input contexts and transitions to the game scene upon button tap. ```tsx const Background = () => ( ); const StartUp = () => { // Switch to the UI input context inputManager.popContext(); inputManager.pushContext('UI'); return ( <> {/* Draw background */} {/* Display title */}