minigl 2.0.0 → 2.0.1

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: f8b03d2bc58b9642caa459346389f4d8a9368bdf
4
- data.tar.gz: a16bbf130daa7014e576450145ab8acd8db57aea
3
+ metadata.gz: 73063e68c52aec583e98389abe3d1334e8a33858
4
+ data.tar.gz: 511d49a8cf23a537c0abf4ca2b35f5e290b11bc7
5
5
  SHA512:
6
- metadata.gz: 7c5ca7adb1c4b297affa552ed1a7e1f7fc723c47e09172363e1049b0fb625247c1efd95d3961433fda7675ce9a8add42bc75c41decf930d1e6fdd01d2a892e13
7
- data.tar.gz: 0400e96968260c4a45791ed85b9e37659f6bfcf0d267919b1fabd61e0bc222d5a1622f58395a2f6ecbb9428fb56274a47223c5a61ae5bb6a93f5a36746c27d44
6
+ metadata.gz: 28646ae5580a7df1b0a7488e2c227068c20c692614a385903040a16573451ebe891e1e222a5292db9fddac2a342a3bf398c10efb687584ef21781214953a95c4
7
+ data.tar.gz: 8183695054e721eca9f52ccc4962348983a9e0964cafb430cffe3c2303377216ccc81383a43c035d76b70a70ac59bd48aa18b97a11c10af2e727ab4ce75beed5
data/README.md CHANGED
@@ -32,16 +32,9 @@ examples provided with the gem.
32
32
  * An auxiliary, tutorial-like documentation is under construction
33
33
  [here](https://github.com/victords/minigl/wiki/How-To).
34
34
 
35
- **Version 2.0.0**
35
+ **Version 2.0.1**
36
36
 
37
- MiniGL 2.0.0 is finally released!
38
-
39
- It brings new features, improvements to existing features and some bug fixes.
40
- For details on what has changed, visit
41
- [the changelog](https://github.com/victords/minigl/wiki/Changelog-(2.0.0)).
42
-
43
- As the semantic versioning implies, **this version is incompatible with the 1.x
44
- series**, so you'll need to adjust your code a little if you wish to upgrade.
45
-
46
- A new tutorial has to be built, because there have been some changes even in the
47
- basics of the usage. So please be patient while it doesn't come out!
37
+ * Adjustment in the ramp slip system. Parameterized the force applied by steep
38
+ ramps (`G.ramp_slip_force`).
39
+ * Adjustment in the methods that change the prefix and directories used by
40
+ `Res`, allowing empty prefixes/directory names.
data/lib/minigl/forms.rb CHANGED
@@ -813,7 +813,7 @@ module MiniGL
813
813
  @fg_color = fg
814
814
  else # String or Symbol
815
815
  @fg = Res.img fg
816
- @fg_path = "#{Res.prefix}img/#{fg.to_s.gsub('_', '/')}.png"
816
+ @fg_path = "#{Res.prefix}#{Res.img_dir}#{fg.to_s.gsub(Res.separator, '/')}.png"
817
817
  puts @fg_path
818
818
  end
819
819
  @fg_margin_x = fg_margin_x
data/lib/minigl/global.rb CHANGED
@@ -142,6 +142,10 @@ module MiniGL
142
142
  # <code>GameWindow#initialize</code> for details.
143
143
  attr_accessor :ramp_slip_threshold
144
144
 
145
+ # Gets or sets the value of ramp_slip_force. See
146
+ # <code>GameWindow#initialize</code> for details.
147
+ attr_accessor :ramp_slip_force
148
+
145
149
  # Gets or sets the value of kb_held_delay. See
146
150
  # <code>GameWindow#initialize</code> for details.
147
151
  attr_accessor :kb_held_delay
@@ -178,6 +182,8 @@ module MiniGL
178
182
  # [ramp_slip_threshold] The maximum ratio between height and width of a ramp
179
183
  # above which the objects will always slip down when
180
184
  # trying to 'climb' that ramp.
185
+ # [ramp_slip_force] The force that will be applied in the horizontal
186
+ # direction when the object is slipping from a steep ramp.
181
187
  # [kb_held_delay] The number of frames a key must be held by the user
182
188
  # before the "held" event (that can be checked with
183
189
  # <code>KB.key_held?</code>) starts to trigger.
@@ -189,7 +195,7 @@ module MiniGL
189
195
  # (checked with <code>Mouse.double_click?</code>).
190
196
  def initialize(scr_w, scr_h, fullscreen = true,
191
197
  gravity = Vector.new(0, 1), min_speed = Vector.new(0.01, 0.01),
192
- ramp_contact_threshold = 10, ramp_slip_threshold = 1.2,
198
+ ramp_contact_threshold = 4, ramp_slip_threshold = 1.2, ramp_slip_force = 0.1,
193
199
  kb_held_delay = 40, kb_held_interval = 5, double_click_delay = 8)
194
200
  super scr_w, scr_h, fullscreen
195
201
  G.window = self
@@ -197,6 +203,7 @@ module MiniGL
197
203
  G.min_speed = min_speed
198
204
  G.ramp_contact_threshold = ramp_contact_threshold
199
205
  G.ramp_slip_threshold = ramp_slip_threshold
206
+ G.ramp_slip_force = ramp_slip_force
200
207
  G.kb_held_delay = kb_held_delay
201
208
  G.kb_held_interval = kb_held_interval
202
209
  G.double_click_delay = double_click_delay
@@ -501,37 +508,37 @@ module MiniGL
501
508
  # directory of the game script. The prefix is the directory under which
502
509
  # 'img', 'sound', 'song', etc. folders are located.
503
510
  def prefix=(value)
504
- value += '/' if value[-1] != '/'
511
+ value += '/' if value != '' and value[-1] != '/'
505
512
  @prefix = value
506
513
  end
507
514
 
508
515
  # Sets the path to image files (under +prefix+). Default is 'img'.
509
516
  def img_dir=(value)
510
- value += '/' if value[-1] != '/'
517
+ value += '/' if value != '' and value[-1] != '/'
511
518
  @img_dir = value
512
519
  end
513
520
 
514
521
  # Sets the path to tilset files (under +prefix+). Default is 'tileset'.
515
522
  def tileset_dir=(value)
516
- value += '/' if value[-1] != '/'
523
+ value += '/' if value != '' and value[-1] != '/'
517
524
  @tileset_dir = value
518
525
  end
519
526
 
520
527
  # Sets the path to sound files (under +prefix+). Default is 'sound'.
521
528
  def sound_dir=(value)
522
- value += '/' if value[-1] != '/'
529
+ value += '/' if value != '' and value[-1] != '/'
523
530
  @sound_dir = value
524
531
  end
525
532
 
526
533
  # Sets the path to song files (under +prefix+). Default is 'song'.
527
534
  def song_dir=(value)
528
- value += '/' if value[-1] != '/'
535
+ value += '/' if value != '' and value[-1] != '/'
529
536
  @song_dir = value
530
537
  end
531
538
 
532
539
  # Sets the path to font files (under +prefix+). Default is 'font'.
533
540
  def font_dir=(value)
534
- value += '/' if value[-1] != '/'
541
+ value += '/' if value != '' and value[-1] != '/'
535
542
  @font_dir = value
536
543
  end
537
544
 
@@ -67,6 +67,7 @@ module MiniGL
67
67
  attr_reader :left
68
68
 
69
69
  attr_reader :ratio # :nodoc:
70
+ attr_reader :factor # :nodoc:
70
71
 
71
72
  # Creates a new ramp.
72
73
  #
@@ -91,7 +92,7 @@ module MiniGL
91
92
  @h = h
92
93
  @left = left
93
94
  @ratio = @h.to_f / @w
94
- @factor = Math.cos(@w / Math.sqrt(@w**2 + @h**2))
95
+ @factor = @w / Math.sqrt(@w**2 + @h**2)
95
96
  end
96
97
 
97
98
  # Checks if an object is in contact with this ramp (standing over it).
@@ -129,7 +130,7 @@ module MiniGL
129
130
  obj.x += dx
130
131
  end
131
132
  obj.y = get_y obj
132
- if counter
133
+ if counter && obj.bottom != self
133
134
  obj.speed.x *= @factor
134
135
  end
135
136
  obj.speed.y = 0
@@ -232,8 +233,12 @@ module MiniGL
232
233
  forces.x = 0 if (forces.x < 0 and @left) or (forces.x > 0 and @right)
233
234
  forces.y = 0 if (forces.y < 0 and @top) or (forces.y > 0 and @bottom)
234
235
 
235
- if @bottom.is_a? Ramp and @bottom.ratio >= G.ramp_slip_threshold
236
- forces.x = (@bottom.left ? -1 : 1) * 0.1
236
+ if @bottom.is_a? Ramp
237
+ if @bottom.ratio >= G.ramp_slip_threshold
238
+ forces.x = (@bottom.left ? -1 : 1) * G.ramp_slip_force
239
+ elsif forces.x > 0 && @bottom.left || forces.x < 0 && !@bottom.left
240
+ forces.x *= @bottom.factor
241
+ end
237
242
  end
238
243
 
239
244
  @speed.x += forces.x / @mass; @speed.y += forces.y / @mass
Binary file
data/test/mov_game.rb CHANGED
@@ -18,11 +18,12 @@ class MyGame < GameWindow
18
18
  # Block.new(485, 490, 127, 10, false),
19
19
  ]
20
20
  @ramps = [
21
- # Ramp.new(200, 550, 200, 50, true),
22
- Ramp.new(0, 300, 150, 200, false),
21
+ Ramp.new(200, 550, 200, 50, true),
22
+ Ramp.new(0, 200, 150, 300, false),
23
23
  Ramp.new(150, 500, 150, 100, false),
24
24
  Ramp.new(500, 500, 150, 100, true),
25
25
  Ramp.new(650, 300, 150, 200, true),
26
+ # Ramp.new(650, 500, 150, 100, true),
26
27
  ]
27
28
 
28
29
  @cyc_obj = GameObject.new(0, 0, 50, 50, :square)
data/test/res_tests.rb CHANGED
@@ -24,14 +24,22 @@ class ResTest < Test::Unit::TestCase
24
24
  assert_nothing_raised do
25
25
  img1 = Res.img :img1
26
26
  end
27
+
27
28
  Res.img_dir = 'img/sub'
28
29
  assert_nothing_raised do
29
30
  img2 = Res.img :image
30
31
  end
32
+
31
33
  Res.img_dir = 'img'
32
34
  Res.separator = '~'
33
35
  assert_nothing_raised do
34
36
  img3 = Res.img 'sub~image'
35
37
  end
38
+
39
+ Res.prefix = File.expand_path(File.dirname(__FILE__))
40
+ Res.img_dir = ''
41
+ assert_nothing_raised do
42
+ img4 = Res.img :test
43
+ end
36
44
  end
37
45
  end
data/test/test.png ADDED
Binary file
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.0
4
+ version: 2.0.1
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: 2015-02-19 00:00:00.000000000 Z
11
+ date: 2015-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gosu
@@ -55,6 +55,7 @@ files:
55
55
  - test/data/img/img1.png
56
56
  - test/data/img/square.png
57
57
  - test/data/img/square.svg
58
+ - test/data/img/sub/image.png
58
59
  - test/data/img/text.png
59
60
  - test/data/img/tile1.png
60
61
  - test/data/img/tile1.svg
@@ -71,6 +72,7 @@ files:
71
72
  - test/mov_game.rb
72
73
  - test/movement_tests.rb
73
74
  - test/res_tests.rb
75
+ - test/test.png
74
76
  - test/vector_tests.rb
75
77
  homepage: https://github.com/victords/minigl
76
78
  licenses:
@@ -105,6 +107,7 @@ test_files:
105
107
  - test/res_tests.rb
106
108
  - test/game_object_tests.rb
107
109
  - test/mov_game.rb
110
+ - test/test.png
108
111
  - test/data/tileset/tileset1.png
109
112
  - test/data/img/barfg.png
110
113
  - test/data/img/tile2b.png
@@ -129,3 +132,4 @@ test_files:
129
132
  - test/data/img/tile2.png
130
133
  - test/data/sound/1.wav
131
134
  - test/data/font/font1.ttf
135
+ - test/data/img/sub/image.png