Noah Petherbridge
6713dd7bfc
Implement scrolling behavior in Play Mode by allowing the Canvas to follow a specific actor and keep it in view. The Canvas has a FollowActor property which holds an ID of the actor to follow (if blank, no actor is being followed). In Play Mode the Player is followed and when they get too close to the left or right edges of the screen, the level will scroll to try and catch them. If the player is moving very fast they can outrun the camera. The bounded levels are enforced in Play Mode and the camera won't scroll to view pixels out-of-bounds and the Doodad actors inside the level aren't allowed to exit its boundaries. This is global, not only for the Player doodad but any Doodad that came with the level as well. Other changes: - Restructured Canvas widget code into many new files. The Canvas widget is shaping up to be where most of the magic happens, which is okay because it's close to the action and pulling the strings from outside would be harder, even tho as a UI element you think it should be lightweight. - Debug Overlay: added room for Scenes to insert their own custom Debug Overlay key/value pairs (the values are string pointers so the Scene can update them freely): - The core labels are FPS, Scene and Mouse. The Pixel (world coordinate under cursor) is removed from the core labels. - Edit Scene provides Pixel, Tool and Swatch - Play Scene provides Pixel, Player, Viewport, Scroll |
||
---|---|---|
.. | ||
debug.go | ||
numbers.go | ||
README.md | ||
shell.go | ||
theme.go |
balance
Constants and settings for the Doodle app.
Environment Variables
Some runtime settings can be configured in the environment. Here they are with their default values.
Most colors work with alpha channels; just provide an 8 hex character code,
like #FF00FF99
for 153 ($99) on the alpha channel.
- Application Windw Size (ints):
DOODLE_W=1024
DOODLE_H=768
- Shell settings:
D_SHELL_BG=#001428C8
: shell background color.D_SHELL_FG=#0099FF
: shell text color.D_SHELL_PC=#FFFFFF
: shell prompt color.D_SHELL_LN=8
: shell history line count (how tall the shell is in lines)D_SHELL_FS=16
: font size for both the shell and on-screen flashed messages.
- Debug Colors and Hitboxes (default invisible=off):
DOODLE_DEBUG_ALL=false
: turn on all debug colors and hitboxes to their default colors and settings.DEBUG_CHUNK_COLOR=#FFFFFF
: background color when caching a chunk to bitmap. Helps visualize where the chunks and caching are happening.DEBUG_CANVAS_BORDER
: draw a border color around every uix.Canvas widget. This effectively draws the bounds of every Doodad drawn on top of a level or inside a button and the bounds of the level space itself.DEBUG_CANVAS_LABEL=false
: draw a label in the corner of every Canvas with details about the Canvas.
- Tuning constants (may not be available in production builds):
D_SCROLL_SPEED=8
: Canvas scroll speed when using the keyboard arrows in the Editor Mode, in pixels per tick.D_DOODAD_SIZE=100
: Default size when creating a new Doodad.
Development booleans for unit tests (set to any non-empty value):
T_WALLPAPER_PNG
for pkg/wallpaper to output PNG images.