diff options
Diffstat (limited to 'app/tick.rb')
| -rw-r--r-- | app/tick.rb | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/app/tick.rb b/app/tick.rb index 7539405..de40a9a 100644 --- a/app/tick.rb +++ b/app/tick.rb @@ -11,13 +11,14 @@ position_range = (100..700).to_a sprite = FF::Cmp::Sprite.new sprite.props[:path] = 'sprites/kenny/Ships/ship_0011.png' FF::Ent.new( - FF::Cmp::Boid.new(x: position_range.sample, y: position_range.sample, vx: 25, vy: 25), + FF::Cmp::Boid.new(x: position_range.sample, y: position_range.sample, vx: 25, vy: 25, w: sprite.props[:w], h: sprite.props[:h]), sprite, FF::Cmp::BoidBounds.new(strength: 1), FF::Cmp::BoidsAlignment.new(strength: 1), FF::Cmp::BoidsSeparation.new(distance: 150, strength: 0.01), FF::Cmp::BoidsCohesion.new(strength: 100), - #debug_arrow, + FF::Cmp::SingletonCamera[0], + debug_arrow, ) end #FF::Ent.new( @@ -32,9 +33,44 @@ end FF::Scn::Debug.add(FF::Sys::DebugRenderVectorArrow) @pause = true FF::Stg.remove FF::Scn::BoidRules +@camera = FF::Cmp::SingletonCamera[0] def tick args args.outputs.background_color = [0,0,0] FelFlame::Stage.call + + # Moving Camera + if args.inputs.keyboard.keys[:down_or_held].include?(:d) + @camera.x += (Math.cos([email protected] * (Math::PI / 180.0)) * 5) + @camera.y += (Math.sin([email protected] * (Math::PI / 180.0)) * 5) + end + if args.inputs.keyboard.keys[:down_or_held].include?(:a) + @camera.x += (Math.cos([email protected] * (Math::PI / 180.0)) * -5) + @camera.y += (Math.sin([email protected] * (Math::PI / 180.0)) * -5) + end + if args.inputs.keyboard.keys[:down_or_held].include?(:w) + #@camera.y += 5 + @camera.x -= (Math.sin([email protected] * (Math::PI / 180.0)) * 5) + @camera.y += (Math.cos([email protected] * (Math::PI / 180.0)) * 5) + end + if args.inputs.keyboard.keys[:down_or_held].include?(:s) + #@camera.y -= 5 + @camera.x -= (Math.sin([email protected] * (Math::PI / 180.0)) * -5) + @camera.y += (Math.cos([email protected] * (Math::PI / 180.0)) * -5) + end + if args.inputs.keyboard.keys[:down_or_held].include?(:q) + @camera.angle += 3 + end + if args.inputs.keyboard.keys[:down_or_held].include?(:e) + @camera.angle -= 3 + end + if args.inputs.keyboard.keys[:down_or_held].include?(:z) + @camera.zoom *= 1.05 + end + if args.inputs.keyboard.keys[:down_or_held].include?(:x) + @camera.zoom *= 0.95 + end + + # Pausing if args.inputs.keyboard.keys[:down].include?(:right) FF::Scn::BoidRules.call end |
