Files
hollywoo-flixel/src/hollywoo_flixel/HollywooFlixelDSL.kiss

34 lines
1.3 KiB
Plaintext

(loadFrom "hollywoo" "src/hollywoo/HollywooDSL.kiss")
(loadFrom "hollywoo-flixel" "src/hollywoo_flixel/AssetMacros.kiss")
(defMacroVar subclass true)
(loadFrom "hollywoo" "src/hollywoo/Movie.kiss")
(method newFlxScene [name set time perspective]
(let [setSprite (new FlxSprite 0 0)]
(setSprite.loadGraphic (dictGet sets set))
(newScene name (cast (new SceneFlxState setSprite time perspective)))))
(method newFlxSound [name path &opt :Float volume]
(set volume (or volume 1))
(assert (<= 0 volume 1))
(let [s (FlxG.sound.load path)]
(set s.volume volume)
(set s.persist true)
(newSound name s)))
(method newFlxProp [name path]
(let [propSprite (new FlxSprite 0 0)]
(propSprite.loadGraphic path)
(newProp name propSprite)))
(method :Void update [:Float elapsed]
// TODO CCs queued to timers will still be called
(#when debug
(when FlxG.keys.justPressed.N
(doFor [idx label] (enumerate labels)
(when (> label lastInstructionPointer)
(doFor =>labelName labelIdx labelsByName
(when (= labelIdx label) (trace "SKIPPING TO $labelName")))
(runInstruction (dictGet instructionPointersByLine label))
(break))))))