Fading Pillowcases Demo
Made in DragonRuby to get to know the engine.
def tick args args.state.solids.faders ||= [] if args.inputs.mouse.down # Tracking mouse drag initial position… args.state.inputs.mouse.held.point ||= args.inputs.mouse.down.point end if args.inputs.mouse.up # …and whether it's currently held. args.state.inputs.mouse.held.point = nil if args.state.solids.pillowcase # Making the current pillowcase a new fader. args.state.solids.faders << args.state.solids.pillowcase args.state.solids.pillowcase = nil end end args.state.solids.faders.select! {|i| i[:a] > 1} # Culling the invisible faders. args.state.solids.faders.each do |i| # Defining faders' lifecycle. if i[:fresh] then i[:a] += 5 else i[:a] -= 1 end if i[:a] > 254 then i[:fresh] = false end end args.outputs.solids << args.state.solids.faders if args.state.inputs.mouse.held.point # Setting the current pillowcase. args.state.solids.pillowcase = { x: args.state.inputs.mouse.held.point.x, y: args.state.inputs.mouse.held.point.y, w: args.inputs.mouse.point.x - args.state.inputs.mouse.held.point.x, h: args.inputs.mouse.point.y - args.state.inputs.mouse.held.point.y, r: 255, g: 0, b: 0, a: 55, fresh: true } end args.outputs.solids << args.state.solids.pillowcase args.outputs.labels << [20, 20, 'Faders ' + args.state.solids.faders.size.to_s] # To make sure they do in fact get culled and not just invisible. end
Leave a comment
Log in with itch.io to leave a comment.