Advanced Doodads (Conveyer Belts) #43

Open
opened 2021-08-09 05:07:14 +00:00 by kirsle · 0 comments
Owner

Brainstorming ideas to support "advanced doodads" such as:

  • Conveyer Belts
  • Moving Platforms (with a destination)

Companion Doodad

The Doodad data struct could add top-level storage for a "Companion Doodad" where it would name a doodad that it should be created with, and linked to, when dropped into your level for the first time.

Example:

  • Movable Platform would appear in the doodad dropper and the user drags it into their level.
  • When dropped, it comes with a Movable Platform Target doodad which looks like a dashed outline and the Platform is pre-linked to its Target, so the player can drag the two where they want them.

The Companion Doodad data would contain:

  • The name of the other doodad (e.g. movable-platform.doodad names platform-target.doodad as its companion)
  • An X,Y offset relative to the doodad where the target should spawn?

Movable Platform

These would be platforms you drag into your level which move back and forth between two locations.

There would be two doodads involved:

  • Movable Platform is user-visible and is the platform itself.
  • Movable Platform Target would be a target for the platform, hidden.

Dragging a Platform into your level will bring its own Target companion, already linked together. The player drags the two where they want the platform to start and end, and the platform will move between the two points during gameplay.

Conveyer Belt

The Doodad in the drawer will be called Conveyer Belt Wheel and you should drag two of them into your level and link them together.

Somehow, the belt between the wheels will need to be drawn. This may be doable by exposing the Strokes API of the Canvas to the JavaScript engine, so a doodad could draw simple lines using the same system that draws links in the Editor Mode.

It might look silly in the level editor though.

Brainstorming ideas to support "advanced doodads" such as: * Conveyer Belts * Moving Platforms (with a destination) # Companion Doodad The Doodad data struct could add top-level storage for a "Companion Doodad" where it would name a doodad that it should be created with, and linked to, when dropped into your level for the first time. Example: * **Movable Platform** would appear in the doodad dropper and the user drags it into their level. * When dropped, it comes with a **Movable Platform Target** doodad which looks like a dashed outline and the Platform is pre-linked to its Target, so the player can drag the two where they want them. The Companion Doodad data would contain: * The name of the other doodad (e.g. movable-platform.doodad names platform-target.doodad as its companion) * An X,Y offset relative to the doodad where the target should spawn? # Movable Platform These would be platforms you drag into your level which move back and forth between two locations. There would be two doodads involved: * **Movable Platform** is user-visible and is the platform itself. * **Movable Platform Target** would be a target for the platform, hidden. Dragging a Platform into your level will bring its own Target companion, already linked together. The player drags the two where they want the platform to start and end, and the platform will move between the two points during gameplay. # Conveyer Belt The Doodad in the drawer will be called **Conveyer Belt Wheel** and you should drag two of them into your level and link them together. Somehow, the belt between the wheels will need to be drawn. This may be doable by exposing the Strokes API of the Canvas to the JavaScript engine, so a doodad could draw simple lines using the same system that draws links in the Editor Mode. It might look silly in the level editor though.
kirsle added the
doodad
label 2021-08-09 05:07:14 +00:00
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: SketchyMaze/doodle#43
No description provided.