diff options
| author | Gene Pasquet <dev@etenil.net> | 2026-04-07 23:36:12 +0100 |
|---|---|---|
| committer | Gene Pasquet <dev@etenil.net> | 2026-04-07 23:36:12 +0100 |
| commit | 19a5db8606a82830a5ccd0ed46d8e0cf3c95db0a (patch) | |
| tree | 241e7376014068ab9fc7a1bc8fa7a29cc1b62490 /docs/entities.org | |
| parent | 618ed5fd6f5ae9c9f275c1e3cfb74762d7d51a01 (diff) | |
Work on demos
Diffstat (limited to 'docs/entities.org')
| -rw-r--r-- | docs/entities.org | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/docs/entities.org b/docs/entities.org index f6e870c..a29ebf6 100644 --- a/docs/entities.org +++ b/docs/entities.org @@ -111,10 +111,12 @@ The engine recognizes these standard keys. Use them to integrate with the physic | ~#:vx~, ~#:vy~ | number | Velocity in pixels per frame. ~#:vx~ is updated by ~apply-velocity-x~; ~#:vy~ is updated by ~apply-velocity-y~. Both consumed by collision resolvers. | | ~#:ay~ | number | Y acceleration (e.g., from jumping or knockback). Consumed by ~apply-acceleration~, which adds it to ~#:vy~. Optional; default is 0. | | ~#:gravity?~ | boolean | Whether gravity applies to this entity. Set to ~#t~ for platformers (gravity pulls down), ~#f~ for top-down or flying entities. Used by ~apply-gravity~. | -| ~#:on-ground?~ | boolean | Whether the entity is touching a solid tile below (set by ~detect-ground~). Use this to gate jump input: only allow jumping if ~#:on-ground?~ is true. | +| ~#:on-ground?~ | boolean | Whether the entity is supported from below (set by ~detect-on-solid~): solid tile under the feet and/or standing on another solid entity when you pass the scene entity list. Use this to gate jump input. | | ~#:solid?~ | boolean | Whether this entity participates in entity-entity collision. If ~#t~, ~resolve-entity-collisions~ will check it against other solid entities. | +| ~#:immovable?~ | boolean | If ~#t~ with ~#:solid? #t~, entity–entity resolution only moves the *other* entity (static platforms). Two overlapping immovable solids are not separated. | | ~#:skip-pipelines~ | list of symbols | Optional. Each symbol names a physics step to skip for this entity (e.g. ~gravity~, ~velocity-x~). See ~docs/physics.org~. | -| ~#:tile-id~ | integer | Sprite index in the tileset (1-indexed). Required for rendering with ~draw-sprite~. Updated automatically by animation (~animate-entity~). | +| ~#:tile-id~ | integer | Sprite index in the tileset (1-indexed). Used by ~render-scene!~ when the scene has a tileset texture and tile metadata (from the tilemap or ~scene-tileset~). Updated automatically by animation (~animate-entity~). | +| ~#:color~ | list | Optional ~(r g b)~ or ~(r g b a)~ (0–255 each). When ~#:tile-id~ is not drawn as a sprite (missing ~#:tile-id~, or no tileset texture), ~render-scene!~ fills the entity rect with this color. | | ~#:facing~ | number | Horizontal flip direction: ~1~ = right (default), ~-1~ = left. Used by renderer to flip sprite horizontally. Update when changing direction. | | ~#:tags~ | list of symbols | List of tag symbols, e.g., ~'(player solid)~. Used by ~scene-find-tagged~ and ~scene-find-all-tagged~ for fast lookups. | | ~#:animations~ | alist | Animation definitions (see Animation section). Keys are animation names (symbols); values are animation specs. | @@ -124,7 +126,7 @@ The engine recognizes these standard keys. Use them to integrate with the physic * Entities in Scenes -A **scene** is a level state: it holds a tilemap, a camera, and a list of entities. These functions manipulate scene entities: +A **scene** is a level state: it holds a tilemap (optional), an optional standalone tileset for ~#:tile-id~ drawing without TMX, a camera, and a list of entities. These functions manipulate scene entities: ** ~scene-entities scene~ @@ -362,7 +364,7 @@ Here is a full example showing entity creation, initialization in the scene, and (player (resolve-tile-collisions-x player tm)) (player (apply-velocity-y player)) (player (resolve-tile-collisions-y player tm)) - (player (detect-ground player tm)) + (player (detect-on-solid player tm)) ;; Update animation (player (set-animation player (cond |
