lotu 0.1.12 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/examples/screen_cursor/mouse_and_keyboard_cursors.rb +14 -5
- data/examples/steering_behaviors/pursuit_and_evade.rb +3 -3
- data/examples/steering_behaviors/pursuit_and_evade_multiple.rb +3 -3
- data/lib/lotu/systems/transformation_system.rb +15 -19
- data/lotu.gemspec +2 -2
- metadata +3 -3
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0.1. | 
| 1 | 
            +
            0.1.13
         | 
| @@ -57,8 +57,9 @@ class Cursors < Game | |
| 57 57 | 
             
              # Setup some input handling for our Cursors app
         | 
| 58 58 | 
             
              def setup_input
         | 
| 59 59 | 
             
                set_keys(KbEscape => :close,
         | 
| 60 | 
            -
                          | 
| 61 | 
            -
                          | 
| 60 | 
            +
                         KbF1 => [:toggle_text, false],
         | 
| 61 | 
            +
                         KbF2 => [:debug!, false],
         | 
| 62 | 
            +
                         KbF3 => [:pause!, false])
         | 
| 62 63 | 
             
              end
         | 
| 63 64 |  | 
| 64 65 | 
             
              # Now onto define some events
         | 
| @@ -88,7 +89,11 @@ class Cursors < Game | |
| 88 89 | 
             
                                      :width => 100,
         | 
| 89 90 | 
             
                                      :rand_color => true,
         | 
| 90 91 | 
             
                                      :mode => :additive)
         | 
| 91 | 
            -
                 | 
| 92 | 
            +
                # Use the transformation system to change our angle over time,
         | 
| 93 | 
            +
                # with an initial value of 0 degrees, to 359 degrees (full
         | 
| 94 | 
            +
                # circle), do it in a time frame of 10 seconds, and when done,
         | 
| 95 | 
            +
                # start over again
         | 
| 96 | 
            +
                @cursor1.transform_angle(:init => 0, :end => 359, :duration => 10, :start_in => 3, :bounce => true, :loop => true)
         | 
| 92 97 |  | 
| 93 98 | 
             
                @cursor2 = Cursor.new(:image => 'crosshair-2.png',
         | 
| 94 99 | 
             
                                      :use_mouse => false,
         | 
| @@ -101,7 +106,11 @@ class Cursors < Game | |
| 101 106 | 
             
                                      :width => 100,
         | 
| 102 107 | 
             
                                      :rand_color => true,
         | 
| 103 108 | 
             
                                      :mode => :additive)
         | 
| 104 | 
            -
                 | 
| 109 | 
            +
                # Use the transformation system to change our angle over time,
         | 
| 110 | 
            +
                # with an initial value of 359 degrees, to 0 degrees (full
         | 
| 111 | 
            +
                # circle in reverse), do it in a time frame of 1 second, and
         | 
| 112 | 
            +
                # when done, start over again
         | 
| 113 | 
            +
                @cursor2.transform_angle(:init => 359, :end => 0, :duration => 1, :loop => true, :start_in => 2)
         | 
| 105 114 |  | 
| 106 115 | 
             
                # Center @cursor2 vertically and move it to the right 3/4 of the
         | 
| 107 116 | 
             
                # screen
         | 
| @@ -112,7 +121,7 @@ class Cursors < Game | |
| 112 121 | 
             
                # call the to_s method on the objects it's watching
         | 
| 113 122 | 
             
                # Create a TextBox with default option :size => 15
         | 
| 114 123 | 
             
                @info = TextBox.new(:size => 15)
         | 
| 115 | 
            -
                @info.text("Press  | 
| 124 | 
            +
                @info.text("Press F1 to hide this text", :size => 24)
         | 
| 116 125 | 
             
                # Watch the FPS, so we get a nice FPS report on the screen
         | 
| 117 126 | 
             
                @info.watch(@systems[FpsSystem], :size => 20)
         | 
| 118 127 | 
             
                # Watch the Stalker system, so we know how many objects of the
         | 
| @@ -50,8 +50,8 @@ class SteeringMissiles < Game | |
| 50 50 | 
             
              def setup_input
         | 
| 51 51 | 
             
                set_keys(KbEscape => :close,
         | 
| 52 52 | 
             
                         MsRight => :teleport_big_missile_to_midscreen,
         | 
| 53 | 
            -
                          | 
| 54 | 
            -
                          | 
| 53 | 
            +
                         KbF2 => [:debug!, false],
         | 
| 54 | 
            +
                         KbF1 => [:toggle_missile_info, false])
         | 
| 55 55 | 
             
              end
         | 
| 56 56 |  | 
| 57 57 | 
             
              def setup_systems
         | 
| @@ -76,7 +76,7 @@ class SteeringMissiles < Game | |
| 76 76 | 
             
                                     :rand_color => true)
         | 
| 77 77 |  | 
| 78 78 | 
             
                @window_info = TextBox.new(:size => 15)
         | 
| 79 | 
            -
                @window_info.text("Press  | 
| 79 | 
            +
                @window_info.text("Press F1 to hide this text", :size => 24)
         | 
| 80 80 | 
             
                @window_info.watch(@systems[FpsSystem], :size => 20)
         | 
| 81 81 | 
             
                @window_info.watch(@systems[StalkerSystem], :color => 0xff33ccff)
         | 
| 82 82 | 
             
                @window_info.watch(@cursor, :color => @cursor.color)
         | 
| @@ -50,8 +50,8 @@ class EvadeMultiple < Game | |
| 50 50 | 
             
              def setup_input
         | 
| 51 51 | 
             
                set_keys(KbEscape => :close,
         | 
| 52 52 | 
             
                         MsRight => :teleport_big_missile_to_midscreen,
         | 
| 53 | 
            -
                          | 
| 54 | 
            -
                          | 
| 53 | 
            +
                         KbF2 => [:debug!, false],
         | 
| 54 | 
            +
                         KbF1 => [:toggle_info, false],
         | 
| 55 55 | 
             
                         KbSpace => [:pause!, false])
         | 
| 56 56 | 
             
              end
         | 
| 57 57 |  | 
| @@ -80,7 +80,7 @@ class EvadeMultiple < Game | |
| 80 80 | 
             
                                     :rand_color => true)
         | 
| 81 81 |  | 
| 82 82 | 
             
                @window_info = TextBox.new(:size => 15)
         | 
| 83 | 
            -
                @window_info.text("Press  | 
| 83 | 
            +
                @window_info.text("Press F1 to hide this text", :size => 24)
         | 
| 84 84 | 
             
                @window_info.watch(@systems[FpsSystem], :size => 20)
         | 
| 85 85 | 
             
                @window_info.watch(@systems[StalkerSystem], :color => 0xff33ccff)
         | 
| 86 86 | 
             
                @window_info.watch(@cursor, :color => @cursor.color)
         | 
| @@ -15,12 +15,14 @@ module Lotu | |
| 15 15 | 
             
                    :property_setter => "#{property}=",
         | 
| 16 16 | 
             
                    :accum_time => 0,
         | 
| 17 17 | 
             
                    :calc => 0,
         | 
| 18 | 
            -
                    :init => opts[:init],
         | 
| 19 | 
            -
                    :end => opts[:end],
         | 
| 18 | 
            +
                    :init => Float(opts[:init]),
         | 
| 19 | 
            +
                    :end => Float(opts[:end]),
         | 
| 20 20 | 
             
                    :duration => opts[:duration] || 1,
         | 
| 21 21 | 
             
                    :start_in => opts[:start_in] || 0,
         | 
| 22 22 | 
             
                    :on_result => opts[:on_result],
         | 
| 23 | 
            -
                    :loop => opts[:loop]
         | 
| 23 | 
            +
                    :loop => opts[:loop],
         | 
| 24 | 
            +
                    :bounce => opts[:bounce],
         | 
| 25 | 
            +
                    :bouncing_back => false
         | 
| 24 26 | 
             
                  }
         | 
| 25 27 | 
             
                  @transformations << transformation
         | 
| 26 28 | 
             
                end
         | 
| @@ -31,23 +33,17 @@ module Lotu | |
| 31 33 | 
             
                    if t[:accum_time] > t[:start_in]
         | 
| 32 34 | 
             
                      step = (t[:end] - t[:init])/t[:duration] * dt
         | 
| 33 35 | 
             
                      t[:calc] += step
         | 
| 34 | 
            -
                      if step  | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
                          end
         | 
| 36 | 
            +
                      tag_for_deletion(t) if step == 0
         | 
| 37 | 
            +
                      if(t[:init] + t[:calc] > t[:end] && step > 0) || (t[:init] + t[:calc] < t[:end] && step < 0)
         | 
| 38 | 
            +
                        if t[:loop] || (t[:bounce] && !t[:bouncing_back])
         | 
| 39 | 
            +
                          t[:calc] = 0
         | 
| 40 | 
            +
                        else
         | 
| 41 | 
            +
                          t[:calc] = t[:end] - t[:init]
         | 
| 42 | 
            +
                          tag_for_deletion(t)
         | 
| 42 43 | 
             
                        end
         | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
                           | 
| 46 | 
            -
                            t[:calc] = 0
         | 
| 47 | 
            -
                          else
         | 
| 48 | 
            -
                            t[:calc] = t[:end] - t[:init]
         | 
| 49 | 
            -
                            tag_for_deletion(t)
         | 
| 50 | 
            -
                          end
         | 
| 44 | 
            +
                        if t[:bounce]
         | 
| 45 | 
            +
                          t[:bouncing_back] = !t[:bouncing_back]
         | 
| 46 | 
            +
                          t[:init], t[:end] = t[:end], t[:init]
         | 
| 51 47 | 
             
                        end
         | 
| 52 48 | 
             
                      end
         | 
| 53 49 | 
             
                      value = t[:init] + t[:calc]
         | 
    
        data/lotu.gemspec
    CHANGED
    
    | @@ -5,11 +5,11 @@ | |
| 5 5 |  | 
| 6 6 | 
             
            Gem::Specification.new do |s|
         | 
| 7 7 | 
             
              s.name = %q{lotu}
         | 
| 8 | 
            -
              s.version = "0.1. | 
| 8 | 
            +
              s.version = "0.1.13"
         | 
| 9 9 |  | 
| 10 10 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 11 11 | 
             
              s.authors = ["lobo_tuerto"]
         | 
| 12 | 
            -
              s.date = %q{2010-03- | 
| 12 | 
            +
              s.date = %q{2010-03-31}
         | 
| 13 13 | 
             
              s.description = %q{lotu aims to bring an agile and simple game development framework to life. It provides useful abstractions so you can concentrate on developing your game.}
         | 
| 14 14 | 
             
              s.email = %q{dev@lobotuerto.com}
         | 
| 15 15 | 
             
              s.extra_rdoc_files = [
         | 
    
        metadata
    CHANGED
    
    | @@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version | |
| 5 5 | 
             
              segments: 
         | 
| 6 6 | 
             
              - 0
         | 
| 7 7 | 
             
              - 1
         | 
| 8 | 
            -
              -  | 
| 9 | 
            -
              version: 0.1. | 
| 8 | 
            +
              - 13
         | 
| 9 | 
            +
              version: 0.1.13
         | 
| 10 10 | 
             
            platform: ruby
         | 
| 11 11 | 
             
            authors: 
         | 
| 12 12 | 
             
            - lobo_tuerto
         | 
| @@ -14,7 +14,7 @@ autorequire: | |
| 14 14 | 
             
            bindir: bin
         | 
| 15 15 | 
             
            cert_chain: []
         | 
| 16 16 |  | 
| 17 | 
            -
            date: 2010-03- | 
| 17 | 
            +
            date: 2010-03-31 00:00:00 -06:00
         | 
| 18 18 | 
             
            default_executable: 
         | 
| 19 19 | 
             
            dependencies: 
         | 
| 20 20 | 
             
            - !ruby/object:Gem::Dependency 
         |