minigl 2.0.6 → 2.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ba735bed35dcb47ec7023231533a5f02abde38fe
4
- data.tar.gz: 3fa15e9e6eed7895295f3e610a7319e8094276e9
3
+ metadata.gz: 6a008a59987965b59eb3079c99aa5a2b60f82fbd
4
+ data.tar.gz: 4e3e3eca4a1f661d932a3cabc06c1af59d91bf05
5
5
  SHA512:
6
- metadata.gz: 7e95d7e26cb0b7d1594a874f62de328c34364186bc30615091d811386e40143bcd47329b3dcb831faf475ef5f45567f975294b52505745f9a006302c1ce2e1fd
7
- data.tar.gz: 38ea70665e7bf11dc36dc1c1ba4bc21808280382fc9a04a1510946cf3b2fc01cac88a8810f328046533d7f8fdc636cd90897fe5aaeb4ebd60d0177a99bb028ec
6
+ metadata.gz: 300cfcd662ddaa79cfcd52adb847412acdfd4adcca706d1803dd566b7ce73f9ce2b05fe11eeb73a3d7ba04ea23fddfac41bf71e811424e1d23746ae297b32d4d
7
+ data.tar.gz: 97f6e31b2896c911599f676c16700ad8300e9aacef9602dcbfc2617c03537dd2895316a4e0e813aa70acd2d7599783fc02088b3c3b8c4fc38da95c8c7e92f850
data/README.md CHANGED
@@ -29,8 +29,7 @@ After installing the Gosu dependencies, you can just `gem install minigl`.
29
29
  * The [wiki](https://github.com/victords/minigl/wiki) is a work in progress with tutorials and examples.
30
30
  * Test package and examples aren't complete!
31
31
 
32
- ## Version 2.0.6
32
+ ## Version 2.0.7
33
33
 
34
- * Fixed the `draw` method of `GameObject` when using both scale and flip.
35
- * Flexibilized the `move_carrying` method from `Movement` with the possibility
36
- of specifying a forces vector instead of an aim and fixed speed.
34
+ * Fixed the camera position for maps smaller than the screen.
35
+ * Added `animate_once` method to `Sprite`.
@@ -43,6 +43,7 @@ module MiniGL
43
43
  @anim_counter = 0
44
44
  @img_index = 0
45
45
  @index_index = 0
46
+ @animate_once_control = 0
46
47
  end
47
48
 
48
49
  # Performs time checking to update the image index according to the
@@ -57,6 +58,8 @@ module MiniGL
57
58
  # A frame will usually represent 1/60 second (roughly 17
58
59
  # milliseconds).
59
60
  def animate(indices, interval)
61
+ @animate_once_control = 0 if @animate_once_control != 0
62
+
60
63
  @anim_counter += 1
61
64
  if @anim_counter >= interval
62
65
  @index_index += 1
@@ -66,6 +69,41 @@ module MiniGL
66
69
  end
67
70
  end
68
71
 
72
+ # Causes the sprite to animate through the +indices+ array exactly once,
73
+ # so that the animation stops once it reaches the last index in the array.
74
+ # Subsequent calls with the same parameters will have no effect, but if
75
+ # the index or interval changes, or if +set_animation+ is called, then a
76
+ # new animation cycle will begin.
77
+ #
78
+ # Parameters:
79
+ # [indices] The sequence of image indices used in the animation. See
80
+ # +animate+ for details.
81
+ # [interval] The amount of frames between each change in the image index.
82
+ # See +animate+ for details.
83
+ def animate_once(indices, interval)
84
+ if @animate_once_control == 2
85
+ return if indices == @animate_once_indices && interval == @animate_once_interval
86
+ @animate_once_control = 0
87
+ end
88
+
89
+ unless @animate_once_control == 1
90
+ @anim_counter = 0
91
+ @img_index = indices[0]
92
+ @index_index = 0
93
+ @animate_once_indices = indices
94
+ @animate_once_interval = interval
95
+ @animate_once_control = 1
96
+ return
97
+ end
98
+
99
+ @anim_counter += 1
100
+ return unless @anim_counter >= interval
101
+
102
+ @index_index += 1
103
+ @img_index = indices[@index_index]
104
+ @animate_once_control = 2 if @index_index == indices.length - 1
105
+ end
106
+
69
107
  # Resets the animation timer and immediately changes the image index to
70
108
  # the specified value.
71
109
  #
@@ -75,6 +113,7 @@ module MiniGL
75
113
  @anim_counter = 0
76
114
  @img_index = index
77
115
  @index_index = 0
116
+ @animate_once_control = 0
78
117
  end
79
118
 
80
119
  # Draws the sprite in the screen
data/lib/minigl/map.rb CHANGED
@@ -181,10 +181,10 @@ module MiniGL
181
181
  v4.y = @iso_abs_size.y + @max_offset
182
182
  end
183
183
  else
184
- @cam.x = 0 if @cam.x < 0
185
184
  @cam.x = @max_x if @cam.x > @max_x
186
- @cam.y = 0 if @cam.y < 0
185
+ @cam.x = 0 if @cam.x < 0
187
186
  @cam.y = @max_y if @cam.y > @max_y
187
+ @cam.y = 0 if @cam.y < 0
188
188
  end
189
189
  end
190
190
 
@@ -25,6 +25,21 @@ class SpriteTest < Test::Unit::TestCase
25
25
  assert_equal 0, s.img_index
26
26
  5.times { s.animate indices, interval }
27
27
  assert_equal 2, s.img_index
28
+
29
+ 10.times { s.animate_once indices, interval }
30
+ assert_equal 2, s.img_index
31
+ s.animate_once indices, interval
32
+ assert_equal 2, s.img_index
33
+
34
+ indices2 = [0, 1, 2, 3]
35
+ s.animate_once indices2, 1
36
+ assert_equal 0, s.img_index
37
+ 10.times { s.animate_once indices2, interval }
38
+ assert_equal 3, s.img_index
39
+
40
+ s.set_animation 0
41
+ 2.times { s.animate_once indices2, 1 }
42
+ assert_equal 1, s.img_index
28
43
  end
29
44
 
30
45
  def test_sprite_visibility
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minigl
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.6
4
+ version: 2.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor David Santos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-19 00:00:00.000000000 Z
11
+ date: 2016-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gosu
@@ -90,38 +90,38 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
90
  version: '0'
91
91
  requirements: []
92
92
  rubyforge_project:
93
- rubygems_version: 2.4.8
93
+ rubygems_version: 2.5.1
94
94
  signing_key:
95
95
  specification_version: 4
96
96
  summary: MiniGL
97
97
  test_files:
98
+ - test/iso_game.rb
99
+ - test/game.rb
98
100
  - test/mov_game.rb
99
101
  - test/game_object_tests.rb
100
- - test/game.rb
101
- - test/iso_game.rb
102
+ - test/res_tests.rb
103
+ - test/movement_tests.rb
102
104
  - test/vector_tests.rb
103
105
  - test/map_tests.rb
104
- - test/movement_tests.rb
105
- - test/res_tests.rb
106
106
  - test/test.png
107
- - test/data/tileset/tileset1.png
108
107
  - test/data/font/font1.ttf
109
108
  - test/data/sound/1.wav
109
+ - test/data/tileset/tileset1.png
110
110
  - test/data/img/check.png
111
- - test/data/img/tile2.png
112
111
  - test/data/img/image.png
113
- - test/data/img/tile1.png
114
- - test/data/img/tile1b.png
115
- - test/data/img/barbg.svg
112
+ - test/data/img/square.svg
113
+ - test/data/img/tile2b.png
116
114
  - test/data/img/text.png
117
- - test/data/img/btn.png
115
+ - test/data/img/img1.png
118
116
  - test/data/img/barfg.svg
117
+ - test/data/img/barbg.svg
118
+ - test/data/img/tile2.png
119
+ - test/data/img/tile2.svg
119
120
  - test/data/img/square.png
120
- - test/data/img/tile1.svg
121
121
  - test/data/img/barbg.png
122
- - test/data/img/img1.png
122
+ - test/data/img/tile1b.png
123
+ - test/data/img/btn.png
123
124
  - test/data/img/barfg.png
124
- - test/data/img/tile2.svg
125
- - test/data/img/square.svg
126
- - test/data/img/tile2b.png
125
+ - test/data/img/tile1.svg
126
+ - test/data/img/tile1.png
127
127
  - test/data/img/sub/image.png