Kyd / todo.txt
Kyd todo.txt
============
Next
====
Splinters
Given an existing Appearance and set of splinter shapes, create new Appearances where they overlap.
The splinter shapes should be greyscale.
It is scaled, so that it covers the region of the original
The splinter shape's pin becomes the final splinter's pin (should be the center of gravity).
We calculate this pin relative to the original's pin so we can initialise its position.
Some methods to auto-generate splinter shapes, e.g. pieces of pie.
A transient setting on EditorSettings enableZOrder
Only set to true if any stage implements UsesZOrder.
Set after a game is loaded as well as GameTab.update()
Role should have defaultText if its defaultAppearance is a Font.
Font info not recalled in Font tab. Is it saved/stored?
NinePatch
Option to REPEAT.
The non-corner parts copied into separate Textures
NinePatch.includeCenter : Boolean
Bugs
====
Font is saved in .act file for actors with a role, but is not used???
If the font is the same as the Role's appearance path, then don't save it.
Pick's paths are not being resolved (using Game's renamed map).
Cannot place a bounce-square/triangle.
class.qualified name not supported in Javascript. Oops.
F11 (build project) highlights many errors which I've not seen when only compiling the JVM version.
Actor.localToWorld etc. only true for top-level actors.
Rename to localToParent?
Also create localToWorld.
Later (Required to build my first proper game)
=====
Run the demo in a browser.
Role?.sizeConstraint :
None
Stanard
FixedAspectRatio
Select actors "below" when holding down ctrl.
File->Open ...
Javascript
==========
KydTypeRegistry.
We need to auto-generate kotlin source code, and add it to the game's
/src/jsMain/kotlin/kyd/registerTypes.kt
At the same time, check that each Customisable.customProperties() are the same as those from reflection.
Much Later (Not required before creating my first game)
==========
PathFields which use Game as their relativeTo should NOT allow relative paths. That would be very confusing.
Font-alternates
Alternative textures, but using the same glyph data.
e.g. outlines, drop shadows...
Label should draw each in turn, each with their own tint.
NewAttrributeDialog of RoleTab - Add AttributeMeaning when STRING.
Role/Appearance could have "control points", which can be dragged within the edtitor.
e.g. to adjust a "position" or "direction" vector (or a length).
A more extreme idea : Add extra GUI elements? e.g. a slider.
Name them for access via game-code.
New Game
Create gradle wrapper (if it doesn't already exist) - will need a path to gradle
Create default .gitignore (if it doesn't already exist)
Initialise git
Nice to Have (Finishing touches / fancy features)
============
Physics engine
https://github.com/KPhysics/KPhysics
Pick :
Show graphic, Show Name (switches)
Custom Graphic size (instead of using the default in EditorSettings).
IntegerScaling : Node
Places its contents (the ActView) in the center, ensuring its aspect ratio is the same as Game.nominalSize,
and if there is EXTRA space, then the scaling factor will be an integer.
This is prevents pixel-art looking blurry.
Set interpolation to ??? while drawing the children.
When creating a new Game, it should automatically include a DropGroup named "Group 1"?.
Drag/Drop from ResourceDock to ActEditor
Create a Getting Started guide
Check poses - all should have at least 1 pixel surrounding it which is fully transparent.
MenuButton to quickly change the accent color.
Color Palette Button??
fun Matrix.inverse() : Matrix
https://www.cuemath.com/algebra/inverse-of-3x3-matrix/
Allow customTransformation on Actor and StageView
When set, position, scale etc. are ignored?
Or applied in addition to those.
But in which order?
e.g. we may want to skew an actor (similar to scale), but was may also want it to
scale/rotate relative to a given world-point (unrelated to the actor's position).
So maybe we need two???