Skip to content

jengine-tap

Tapping games for more than one finger: Burrow Bop and Ivory Lanes.

KindProject package: linked into the builds of the projects that list it
Sourcepackages/jengine-tap
Version0.1.0
Entry pointjengine_tap::TapPackage
Script namespaceTap
Listed byprojects/arcade-classics

List it in the top-level "packages" array of project.jengine:

{
"packages": [
{ "name": "jengine-tap", "source": { "type": "path", "path": "../../packages/jengine-tap" } }
]
}

Then rebuild the editor viewport for the project (jengine viewport-build projects/<name>, or the editor’s Rebuild viewport banner). Native and web builds link it on their own.

A scene that uses its components must be a v2 scene ("version": 2): a v1 scene has no field for a package component and keeps it as inert custom data.

A script can check that the package is linked with if Tap == nil then return end.

Scene keyRust type
tp_burrowBurrowpackage only: needs a v2 scene
tp_lanesLanespackage only: needs a v2 scene

Commands run in every runtime and return nothing; a package publishes what scripts read onto components (see the notes below). The flat name also works.

CallFlat name
Tap.bop_start(e, seed)tp_bop_start
Tap.bop_stop(e)tp_bop_stop
Tap.bop_pause(e, paused)tp_bop_pause
Tap.bop_hole(e, hole)tp_bop_hole
Tap.bop_tap(e, x, y)tp_bop_tap
Tap.lanes_start(e, song, seed)tp_lanes_start
Tap.lanes_stop(e)tp_lanes_stop
Tap.lanes_pause(e, paused)tp_lanes_pause
Tap.lanes_key(e, lane, down)tp_lanes_key
Tap.lanes_tap(e, x, y)tp_lanes_tap
  • projects/arcade-classics/assets/scenes/burrow.scene
  • projects/arcade-classics/assets/scenes/ivory.scene

From packages/jengine-tap/src/lib.rs.

Tapping games for more than one finger - Burrow Bop and Ivory Lanes.

Both are played with several fingers at once: twin moles struck together, a chord on two lanes, a long note held while another finger plays on. So both read every finger themselves (fingers), from InputState::touches - the engine’s multi-touch - through the frame camera; without a touch screen the mouse is one finger and the keyboard plays the holes and lanes by command. tp_bop_tap / tp_lanes_tap deliver a tap by hand.

  • burrow - whack-a-mole: twelve holes, sixty seconds, moles, hard hats, golden moles, bombs and twins.
  • lanes - piano tiles: four lanes, a song that plays as you tap, chords, long notes, and speed that grows.
CallDoes
Tap.bop_start(e, seed) / Tap.bop_stop(e) / Tap.bop_pause(e, paused)a round of Burrow Bop
Tap.bop_hole(e, hole)strike a hole (keys)
Tap.bop_tap(e, x, y)a tap at a world point, by hand
Tap.lanes_start(e, song, seed) / Tap.lanes_stop(e) / Tap.lanes_pause(e, paused)a run of Ivory Lanes
Tap.lanes_key(e, lane, down)a lane’s key going down or up
Tap.lanes_tap(e, x, y)a tap at a world point, by hand

tp_burrow: active, time_left, score, combo, multiplier, best_combo, hits, escaped, bombs, doubles, over, and events - rise, hit (points, combo, double), clang, boom, escaped, combo_lost, thud, over.

tp_lanes: active, song, song_name, songs, score, played, speed, laps, started, over, and events - note (notes, MIDI numbers, for the script to sound), held, released, wrong, missed.