(import flixel.FlxState) (import flixel.FlxG) (import flixel.FlxSprite) (import flixel.util.FlxColor) (import openfl.filters.BitmapFilter) (import openfl.filters.ShaderFilter) (import flixel.system.FlxAssets.FlxShader) (extends FlxState) (prop &mut shader null) (method &override :Void create [] (super.create) (let [bg (new FlxSprite 0 0 "assets/images/apTestRoomEdited.jpg")] (bg.setGraphicSize (iHalf FlxG.width) (iHalf FlxG.height)) (bg.screenCenter) (set bg.alpha 0.5) (add bg)) (set shader (new kiss_flixel.shaders.Invert)) (kiss_flixel.CameraTools.addShaderFilter FlxG.camera (array FlxShader shader))) (method &override :Void update [:Float elapsed] (super.update elapsed) (when FlxG.keys.justPressed.SPACE (set shader.invertBool !shader.invertBool)))