add-game
무료Add a second game to the monorepo (apps/<game>) from the seed game, wired to the gate. Load when asked to create a new game / app / prototype in this repo.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
How a game of this seed is organized (apps/<game>/src) and how to add gameplay with PixiJS v8 without breaking the strict gate. Load before editing apps/*/src or apps/*/tests.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
실행 점수 미검증
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
PixiJS 8.21 (v8 API only). Never guess an API: load the skill pixijs (it routes to the
right pixijs-* skill), then check the types in apps/game/node_modules/pixi.js/lib/**/*.d.ts.
v7 habits that do not exist anymore: new Application({...}) options (→ await app.init({...})),
app.view (→ app.canvas), Loader (→ Assets), beginFill/endFill (→ .rect().fill()),
new Text("hi", style) (→ new Text({ text, style })). Skill pixijs-migration-v8.
| File | Role |
|---|---|
src/main.ts | the only file that touches Pixi: app.init, Assets.load, sprites, app.ticker.add |
src/entity.ts | game state as readonly data + pure functions (moveEntity); Pixi math only (Rectangle) |
src/input.ts | keyboard → held keys → direction (KeyboardEvent.code: physical keys, WASD = ZQSD) |
src/assets/ | images, sounds: import url from "./assets/x.png" (hashed, works under any base path) |
tests/*.test.ts | Vitest on the pure functions (import … from "vite-plus/test") |
Collisions: walls are drawn with Graphics (rect().fill()) in main.ts; their hit boxes
are wall.getBounds().rectangle, passed to moveEntity, which tests hitBox(entity).intersects(wall)
one axis at a time (stops flush, slides along). Moving walls: read getBounds() again each frame.
The loop in main.ts, every frame: state = update(state, input, ticker.deltaMS), then copy
the state onto the sprites. New gameplay = a new pure function + its test, then one line in the
ticker. Speeds are in pixels per second, scaled by ticker.deltaMS (frame-rate independent).
tsconfig.base.json: strict, noUncheckedIndexedAccess (array[i] is T | undefined),
exactOptionalPropertyTypes, verbatimModuleSyntax (import type for types only).vite.config.ts): pedantic + type-aware. Parameters must be readonly types:
readonly T[], { readonly x: number }. Pixi's Application, Rectangle, Sprite, Text, Ticker
are allowed as parameters; another Pixi class as a parameter → add it to that allow list
with the reason, never disable the rule..ts (./entity.ts).await is fine in main.ts (Vite 8 targets browsers that support it).The Claude hook runs vp check --fix <file> and the game's unit tests after each edit.
Before "done": vp run ready. A visible change: also look at it (vp -C apps/game dev, or a
Playwright screenshot, skill e2e).
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Add a second game to the monorepo (apps/<game>) from the seed game, wired to the gate. Load when asked to create a new game / app / prototype in this repo.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
End-to-end tests of a game with Playwright (apps/*/e2e/*.e2e.ts) on a WebGL canvas, and taking screenshots of the running game. Load before writing or debugging an e2e test, or to look at the game in a browser.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use this skill first for ANY PixiJS v8 task; it routes to the right specialized skill for the job. Covers the full PixiJS surface: Application setup, the scene graph (Container, Sprite, Graphics, Text, Mesh, ParticleContainer, DOMContainer, GifSprite), rendering (WebGL/WebGPU/Canvas, render loop, custom shaders, filters, blend modes), assets, events, color, math, ticker, accessibility, performance, environments, migration from v7, and project scaffolding. Triggers on: pixi, pixi.js, pixijs, PixiJS, v8, Application, app.init, Sprite, Container, Graphics, Text, Mesh, ParticleContainer, DOMContainer, GifSprite, Assets, Ticker, renderer, WebGL, WebGPU, scene graph, filter, shader, blend mode, texture, BitmapText, create-pixi, how do I draw, how do I render, how do I animate in pixi.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use this skill when adding screen reader and keyboard navigation to PixiJS v8 apps. Covers AccessibilitySystem options (enabledByDefault, debug, activateOnTab, deactivateOnMouseMove), per-container accessibility properties, shadow DOM overlay, mobile touch-hook activation. Triggers on: accessibility, a11y, screen reader, ARIA, keyboard navigation, tab order, AccessibilitySystem, accessibleTitle, accessibleHint, tabIndex, accessibleChildren.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use this skill when creating and configuring a PixiJS v8 Application. Covers new Application() + async app.init() options (width, height, background, antialias, resolution, autoDensity, preference, resizeTo, autoStart, sharedTicker, canvas, useBackBuffer, powerPreference, eventFeatures, accessibilityOptions, gcActive, bezierSmoothness, webgl/webgpu/canvasOptions per-renderer overrides), app.stage/renderer/canvas/screen/domContainerRoot access, ResizePlugin, TickerPlugin, CullerPlugin (cullable, cullArea), custom ApplicationPlugin via ExtensionType.Application, start/stop lifecycle, and app.destroy() with releaseGlobalResources. Triggers on: Application, app.init, app.stage, app.renderer, app.canvas, app.screen, app.domContainerRoot, ApplicationOptions, ApplicationPlugin, ExtensionType.Application, resizeTo, sharedTicker, skipExtensionImports, preferWebGLVersion, preserveDrawingBuffer, cullable, CullerPlugin, app.start, app.stop, app.destroy, releaseGlobalResources.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use this skill when loading and managing resources in PixiJS v8. Covers Assets.init, Assets.load/add/unload, bundles, manifests, background loading, onProgress, caching, spritesheets, video textures, web fonts, bitmap fonts, animated GIFs, compressed textures, SVG as texture or Graphics, resolution detection, per-asset data options, and forcing a specific loader with the parser field (for extension-less URLs). Triggers on: Assets, Assets.load, Assets.init, loadBundle, manifest, backgroundLoad, Spritesheet, Cache, LoadOptions, unload, parser, loadParser, loadWebFont, loadBitmapFont, loadVideoTextures, GifSource, VideoSourceOptions.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.