minigl 2.0.2 → 2.0.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 683014cfbecd482d631925ec45ee1326021e024a
4
- data.tar.gz: ee579a15c9f2eaf33e5ebffd6349553299b5fdbd
3
+ metadata.gz: fda5e695d12ea20cd3a5a85554b55f8fd1bb29e7
4
+ data.tar.gz: f864987fbf4fe1a042a4a48191ac2b12625e4602
5
5
  SHA512:
6
- metadata.gz: d3751ccd5c52458864578752a7f10a71db732e5ec0514a258e3cef6feece6e30df6d1563525a00ee4f2e4c1b017045eab0a9fb6818a48997c62a03f0b7ed914c
7
- data.tar.gz: fda44bd25b989ffe54b2208f6883662c2baeeb8384d7453ecb6fa0edf8286d36020c81aa42bfd38d3998458617312b398fbe867147334041f0142026d3fcd162
6
+ metadata.gz: c8850221370b6f6a77412059b6743a341adefbc5f91bbcffff09b24ce351eaa1782c3f1f440d2aba17cf1ed326710ea906a1cac6cac5ed81da79ec5cef188348
7
+ data.tar.gz: 2629a2fe8113011548014bfb651afb2b408e921d188a6ab2abd03c352a867000cf39f4f723a52d8cc24cbcf5d98c44c186b51e99b295bc67b19850d05bbfba6c
data/README.md CHANGED
@@ -32,9 +32,29 @@ 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.2**
36
-
37
- * Small adjustment in `GameWindow#clear`, changing the format of the color
38
- parameter from AARRGGBB to RRGGBB (as the alpha would have no effect).
39
- * Addition of the `flip` parameter to the `draw` method of `Sprite` and
40
- `GameObject`.
35
+ ## Version 2.0.3
36
+
37
+ * Flexibilization of various methods and constructors with named parameters.
38
+ Please note I haven't used the "official" Ruby syntax for named parameters, but
39
+ the "first parameter as hash" technique (in order to keep the positional call
40
+ available), so you will need to be careful to include all the mandatory
41
+ parameters in your hash, or you could face some strange errors (you can find out
42
+ the mandatory parameters in the documentation). Here is the list of flexibilized
43
+ methods:
44
+ * `GameWindow::new`
45
+ * `Sprite#draw`
46
+ * `GameObject#draw`
47
+ * `TextHelper#write_line`
48
+ * `Button::new`
49
+ * `ToggleButton::new`
50
+ * `TextField::new`
51
+ * `ProgressBar::new`
52
+ * `DropDownList::new`
53
+ * Flexibilization of `Mouse::over?` with the possibility of passing a single
54
+ parameter (a `Rectangle` object) instead of four coordinates.
55
+ * Passing of the `set_animation` method from `GameObject` to `Sprite`, so the
56
+ sprites also support it (`GameObject` still supports because it inherits from
57
+ `Sprite`).
58
+ * Change of the parameter order in `TextHelper#write_line`, so that `alpha`
59
+ comes right after `color`, and not after all the `effect_...` parameters. **This
60
+ could generate incompatibility.**
@@ -29,9 +29,7 @@ module MiniGL
29
29
  # for each specific component class.
30
30
  attr_accessor :params
31
31
 
32
- # This constructor is for internal use of the subclasses only. Do not
33
- # instantiate objects of this class.
34
- def initialize(x, y, font, text, text_color, disabled_text_color)
32
+ def initialize(x, y, font, text, text_color, disabled_text_color) # :nodoc:
35
33
  @x = x
36
34
  @y = y
37
35
  @font = font
@@ -93,8 +91,32 @@ module MiniGL
93
91
  # parameters.
94
92
  # [action] The block of code executed when the button is clicked (or by
95
93
  # calling the +click+ method).
96
- def initialize(x, y, font, text, img, text_color = 0, disabled_text_color = 0, over_text_color = 0, down_text_color = 0,
94
+ #
95
+ # *Obs.:* This method accepts named parameters, but +x+ and +y+ are
96
+ # mandatory (also, +img+ is mandatory when +width+ and +height+ are not
97
+ # provided, and vice-versa).
98
+ def initialize(x, y = nil, font = nil, text = nil, img = nil,
99
+ text_color = 0, disabled_text_color = 0, over_text_color = 0, down_text_color = 0,
97
100
  center_x = true, center_y = true, margin_x = 0, margin_y = 0, width = nil, height = nil, params = nil, &action)
101
+ if x.is_a? Hash
102
+ y = x[:y]
103
+ font = x[:font]
104
+ text = x[:text]
105
+ img = x[:img]
106
+ text_color = x.fetch(:text_color, 0)
107
+ disabled_text_color = x.fetch(:disabled_text_color, 0)
108
+ over_text_color = x.fetch(:over_text_color, 0)
109
+ down_text_color = x.fetch(:down_text_color, 0)
110
+ center_x = x.fetch(:center_x, true)
111
+ center_y = x.fetch(:center_y, true)
112
+ margin_x = x.fetch(:margin_x, 0)
113
+ margin_y = x.fetch(:margin_y, 0)
114
+ width = x.fetch(:width, nil)
115
+ height = x.fetch(:height, nil)
116
+ params = x.fetch(:params, nil)
117
+ x = x[:x]
118
+ end
119
+
98
120
  super x, y, font, text, text_color, disabled_text_color
99
121
  @over_text_color = over_text_color
100
122
  @down_text_color = down_text_color
@@ -249,8 +271,33 @@ module MiniGL
249
271
  # puts "button was checked" if checked
250
272
  # # do something with params
251
273
  # }
252
- def initialize(x, y, font, text, img, checked = false, text_color = 0, disabled_text_color = 0, over_text_color = 0, down_text_color = 0,
274
+ #
275
+ # *Obs.:* This method accepts named parameters, but +x+ and +y+ are
276
+ # mandatory (also, +img+ is mandatory when +width+ and +height+ are not
277
+ # provided, and vice-versa).
278
+ def initialize(x, y = nil, font = nil, text = nil, img = nil, checked = false,
279
+ text_color = 0, disabled_text_color = 0, over_text_color = 0, down_text_color = 0,
253
280
  center_x = true, center_y = true, margin_x = 0, margin_y = 0, width = nil, height = nil, params = nil, &action)
281
+ if x.is_a? Hash
282
+ y = x[:y]
283
+ font = x[:font]
284
+ text = x[:text]
285
+ img = x[:img]
286
+ checked = x.fetch(:checked, false)
287
+ text_color = x.fetch(:text_color, 0)
288
+ disabled_text_color = x.fetch(:disabled_text_color, 0)
289
+ over_text_color = x.fetch(:over_text_color, 0)
290
+ down_text_color = x.fetch(:down_text_color, 0)
291
+ center_x = x.fetch(:center_x, true)
292
+ center_y = x.fetch(:center_y, true)
293
+ margin_x = x.fetch(:margin_x, 0)
294
+ margin_y = x.fetch(:margin_y, 0)
295
+ width = x.fetch(:width, nil)
296
+ height = x.fetch(:height, nil)
297
+ params = x.fetch(:params, nil)
298
+ x = x[:x]
299
+ end
300
+
254
301
  super x, y, font, text, nil, text_color, disabled_text_color, over_text_color, down_text_color,
255
302
  center_x, center_y, margin_x, margin_y, width, height, params, &action
256
303
  @img =
@@ -359,8 +406,32 @@ module MiniGL
359
406
  # field is changed, either by user input or by calling
360
407
  # +text=+. The new text is passed as a first parameter
361
408
  # to this block, followed by +params+. Can be +nil+.
362
- def initialize(x, y, font, img, cursor_img = nil, disabled_img = nil, margin_x = 0, margin_y = 0, max_length = 100, active = false, text = '',
363
- allowed_chars = nil, text_color = 0, disabled_text_color = 0, selection_color = 0, locale = 'en-us', params = nil, &on_text_changed)
409
+ #
410
+ # *Obs.:* This method accepts named parameters, but +x+, +y+, +font+ and
411
+ # +img+ are mandatory.
412
+ def initialize(x, y = nil, font = nil, img = nil, cursor_img = nil, disabled_img = nil, margin_x = 0, margin_y = 0,
413
+ max_length = 100, active = false, text = '', allowed_chars = nil,
414
+ text_color = 0, disabled_text_color = 0, selection_color = 0, locale = 'en-us', params = nil, &on_text_changed)
415
+ if x.is_a? Hash
416
+ y = x[:y]
417
+ font = x[:font]
418
+ img = x[:img]
419
+ cursor_img = x.fetch(:cursor_img, nil)
420
+ disabled_img = x.fetch(:disabled_img, nil)
421
+ margin_x = x.fetch(:margin_x, 0)
422
+ margin_y = x.fetch(:margin_y, 0)
423
+ max_length = x.fetch(:max_length, 100)
424
+ active = x.fetch(:active, false)
425
+ text = x.fetch(:text, '')
426
+ allowed_chars = x.fetch(:allowed_chars, nil)
427
+ text_color = x.fetch(:text_color, 0)
428
+ disabled_text_color = x.fetch(:disabled_text_color, 0)
429
+ selection_color = x.fetch(:selection_color, 0)
430
+ locale = x.fetch(:locale, 'en-us')
431
+ params = x.fetch(:params, nil)
432
+ x = x[:x]
433
+ end
434
+
364
435
  super x, y, font, text, text_color, disabled_text_color
365
436
  @img = Res.img img
366
437
  @w = @img.width
@@ -598,17 +669,17 @@ module MiniGL
598
669
  def locale=(value)
599
670
  @locale = value.downcase
600
671
  @chars =
601
- case @locale
602
- when 'en-us' then "abcdefghijklmnopqrstuvwxyz1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ`-=[]\\;',./~_+{}|:\"<>?!@#$%^&*()+-*/"
603
- when 'pt-br' then "abcdefghijklmnopqrstuvwxyz1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ'-=/[]ç~,.;\"_+?{}Ç^<>:!@#$%¨&*()+-*/"
604
- else '###################################################################################################'
605
- end
672
+ case @locale
673
+ when 'en-us' then "abcdefghijklmnopqrstuvwxyz1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ`-=[]\\;',./~_+{}|:\"<>?!@#$%^&*()+-*/"
674
+ when 'pt-br' then "abcdefghijklmnopqrstuvwxyz1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ'-=/[]ç~,.;\"_+?{}Ç^<>:!@#$%¨&*()+-*/"
675
+ else '###################################################################################################'
676
+ end
606
677
  @allowed_chars =
607
- if @user_allowed_chars
608
- @user_allowed_chars
609
- else
610
- @chars
611
- end
678
+ if @user_allowed_chars
679
+ @user_allowed_chars
680
+ else
681
+ @chars
682
+ end
612
683
  end
613
684
 
614
685
  # Returns the currently selected text.
@@ -799,8 +870,28 @@ module MiniGL
799
870
  # [text_color] Color of the text.
800
871
  # [format] Format to display the value. Specify '%' for a percentage and
801
872
  # anything else for absolute values (current/maximum).
802
- def initialize(x, y, w, h, bg, fg, max_value = 100, value = 100, fg_margin_x = 0, fg_margin_y = 0, #fg_left = nil, fg_right = nil,
873
+ #
874
+ # *Obs.:* This method accepts named parameters, but +x+, +y+, +w+, +h+, +bg+
875
+ # and +fg+ are mandatory.
876
+ def initialize(x, y = nil, w = nil, h = nil, bg = nil, fg = nil,
877
+ max_value = 100, value = 100, fg_margin_x = 0, fg_margin_y = 0, #fg_left = nil, fg_right = nil,
803
878
  font = nil, text_color = 0, format = nil)
879
+ if x.is_a? Hash
880
+ y = x[:y]
881
+ w = x[:w]
882
+ h = x[:h]
883
+ bg = x[:bg]
884
+ fg = x[:fg]
885
+ max_value = x.fetch(:max_value, 100)
886
+ value = x.fetch(:value, 100)
887
+ fg_margin_x = x.fetch(:fg_margin_x, 0)
888
+ fg_margin_y = x.fetch(:fg_margin_y, 0)
889
+ font = x.fetch(:font, nil)
890
+ text_color = x.fetch(:text_color, 0)
891
+ format = x.fetch(:format, nil)
892
+ x = x[:x]
893
+ end
894
+
804
895
  super x, y, font, '', text_color, text_color
805
896
  @w = w
806
897
  @h = h
@@ -950,8 +1041,30 @@ module MiniGL
950
1041
  # [disabled_text_color] Analogous to +text_color+.
951
1042
  # [over_text_color] Same as above.
952
1043
  # [down_text_color] Same as above.
953
- def initialize(x, y, font, img, opt_img, options, option = 0, text_margin = 0, width = nil, height = nil,
1044
+ #
1045
+ # *Obs.:* This method accepts named parameters, but +x+, +y+, +font+ and
1046
+ # +options+ are mandatory (also, +img+ and +opt_img+ are mandatory when
1047
+ # +width+ and +height+ are not provided, and vice-versa).
1048
+ def initialize(x, y = nil, font = nil, img = nil, opt_img = nil, options = nil,
1049
+ option = 0, text_margin = 0, width = nil, height = nil,
954
1050
  text_color = 0, disabled_text_color = 0, over_text_color = 0, down_text_color = 0)
1051
+ if x.is_a? Hash
1052
+ y = x[:y]
1053
+ font = x[:font]
1054
+ img = x[:img]
1055
+ opt_img = x[:opt_img]
1056
+ options = x[:options]
1057
+ option = x.fetch(:option, 0)
1058
+ text_margin = x.fetch(:text_margin, 0)
1059
+ width = x.fetch(:width, nil)
1060
+ height = x.fetch(:height, nil)
1061
+ text_color = x.fetch(:text_color, 0)
1062
+ disabled_text_color = x.fetch(:disabled_text_color, 0)
1063
+ over_text_color = x.fetch(:over_text_color, 0)
1064
+ down_text_color = x.fetch(:down_text_color, 0)
1065
+ x = x[:x]
1066
+ end
1067
+
955
1068
  super x, y, font, options[option], text_color, disabled_text_color
956
1069
  @img = img
957
1070
  @opt_img = opt_img
@@ -66,6 +66,17 @@ module MiniGL
66
66
  end
67
67
  end
68
68
 
69
+ # Resets the animation timer and immediately changes the image index to
70
+ # the specified value.
71
+ #
72
+ # Parameters:
73
+ # [index] The image index to be set.
74
+ def set_animation(index)
75
+ @anim_counter = 0
76
+ @img_index = index
77
+ @index_index = 0
78
+ end
79
+
69
80
  # Draws the sprite in the screen
70
81
  #
71
82
  # Parameters:
@@ -87,7 +98,20 @@ module MiniGL
87
98
  # to draw it vertically flipped.
88
99
  # [z_index] The z-order to draw the object. Objects with larger z-orders
89
100
  # will be drawn on top of the ones with smaller z-orders.
101
+ #
102
+ # *Obs.:* This method accepts named parameters.
90
103
  def draw(map = nil, scale_x = 1, scale_y = 1, alpha = 0xff, color = 0xffffff, angle = nil, flip = nil, z_index = 0)
104
+ if map.is_a? Hash
105
+ scale_x = map.fetch(:scale_x, 1)
106
+ scale_y = map.fetch(:scale_y, 1)
107
+ alpha = map.fetch(:alpha, 0xff)
108
+ color = map.fetch(:color, 0xffffff)
109
+ angle = map.fetch(:angle, nil)
110
+ flip = map.fetch(:flip, nil)
111
+ z_index = map.fetch(:z_index, 0)
112
+ map = map.fetch(:map, nil)
113
+ end
114
+
91
115
  color = (alpha << 24) | color
92
116
  if angle
93
117
  @img[@img_index].draw_rot @x.round - (map ? map.cam.x : 0) + (flip == :horiz ? scale_x * @img[0].width : 0),
@@ -154,17 +178,6 @@ module MiniGL
154
178
  @stored_forces = Vector.new 0, 0
155
179
  end
156
180
 
157
- # Resets the animation timer and immediately changes the image index to
158
- # the specified value.
159
- #
160
- # Parameters:
161
- # [index] The image index to be set.
162
- def set_animation(index)
163
- @anim_counter = 0
164
- @img_index = index
165
- @index_index = 0
166
- end
167
-
168
181
  # Draws the game object in the screen.
169
182
  #
170
183
  # Parameters:
@@ -186,7 +199,20 @@ module MiniGL
186
199
  # to draw it vertically flipped.
187
200
  # [z_index] The z-order to draw the object. Objects with larger z-orders
188
201
  # will be drawn on top of the ones with smaller z-orders.
202
+ #
203
+ # *Obs.:* This method accepts named parameters.
189
204
  def draw(map = nil, scale_x = 1, scale_y = 1, alpha = 0xff, color = 0xffffff, angle = nil, flip = nil, z_index = 0)
205
+ if map.is_a? Hash
206
+ scale_x = map.fetch(:scale_x, 1)
207
+ scale_y = map.fetch(:scale_y, 1)
208
+ alpha = map.fetch(:alpha, 0xff)
209
+ color = map.fetch(:color, 0xffffff)
210
+ angle = map.fetch(:angle, nil)
211
+ flip = map.fetch(:flip, nil)
212
+ z_index = map.fetch(:z_index, 0)
213
+ map = map.fetch(:map, nil)
214
+ end
215
+
190
216
  color = (alpha << 24) | color
191
217
  if angle
192
218
  @img[@img_index].draw_rot @x.round + (flip == :horiz ? -1 : 1) * @img_gap.x - (map ? map.cam.x : 0) + (flip == :horiz ? scale_x * @w : 0),
@@ -247,8 +273,25 @@ module MiniGL
247
273
  # '.wav'.
248
274
  # [sound_volume] The volume (from 0 to 1) to play the sound, if any. Default
249
275
  # is 1.
250
- def initialize(x, y, img, sprite_cols = nil, sprite_rows = nil, interval = 10, indices = nil, lifetime = nil,
276
+ #
277
+ # *Obs.:* This method accepts named parameters, but +x+, +y+ and +img+ are
278
+ # mandatory.
279
+ def initialize(x, y = nil, img = nil, sprite_cols = nil, sprite_rows = nil, interval = 10, indices = nil, lifetime = nil,
251
280
  sound = nil, sound_ext = '.wav', sound_volume = 1)
281
+ if x.is_a? Hash
282
+ y = x[:y]
283
+ img = x[:img]
284
+ sprite_cols = x.fetch(:sprite_cols, nil)
285
+ sprite_rows = x.fetch(:sprite_rows, nil)
286
+ interval = x.fetch(:interval, 10)
287
+ indices = x.fetch(:indices, nil)
288
+ lifetime = x.fetch(:lifetime, nil)
289
+ sound = x.fetch(:sound, nil)
290
+ sound_ext = x.fetch(:sound_ext, '.wav')
291
+ sound_volume = x.fetch(:sound_volume, 1)
292
+ x = x[:x]
293
+ end
294
+
252
295
  super x, y, img, sprite_cols, sprite_rows
253
296
  @timer = 0
254
297
  if indices
@@ -193,10 +193,27 @@ module MiniGL
193
193
  # [double_click_delay] The maximum interval, in frames, between two
194
194
  # clicks, to trigger the "double click" event
195
195
  # (checked with <code>Mouse.double_click?</code>).
196
- def initialize(scr_w, scr_h, fullscreen = true,
196
+ #
197
+ # *Obs.:* This method accepts named parameters, but +scr_w+ and +scr_h+ are
198
+ # mandatory.
199
+ def initialize(scr_w, scr_h = nil, fullscreen = true,
197
200
  gravity = Vector.new(0, 1), min_speed = Vector.new(0.01, 0.01),
198
- ramp_contact_threshold = 4, ramp_slip_threshold = 1.2, ramp_slip_force = 0.1,
201
+ ramp_contact_threshold = 4, ramp_slip_threshold = 1.1, ramp_slip_force = 0.1,
199
202
  kb_held_delay = 40, kb_held_interval = 5, double_click_delay = 8)
203
+ if scr_w.is_a? Hash
204
+ scr_h = scr_w[:scr_h]
205
+ fullscreen = scr_w.fetch(:fullscreen, true)
206
+ gravity = scr_w.fetch(:gravity, Vector.new(0, 1))
207
+ min_speed = scr_w.fetch(:min_speed, Vector.new(0.01, 0.01))
208
+ ramp_contact_threshold = scr_w.fetch(:ramp_contact_threshold, 4)
209
+ ramp_slip_threshold = scr_w.fetch(:ramp_slip_threshold, 1.1)
210
+ ramp_slip_force = scr_w.fetch(:ramp_slip_force, 0.1)
211
+ kb_held_delay = scr_w.fetch(:kb_held_delay, 40)
212
+ kb_held_interval = scr_w.fetch(:kb_held_interval, 5)
213
+ double_click_delay = scr_w.fetch(:double_click_delay, 8)
214
+ scr_w = scr_w[:scr_w]
215
+ end
216
+
200
217
  super scr_w, scr_h, fullscreen
201
218
  G.window = self
202
219
  G.gravity = gravity
@@ -435,8 +452,16 @@ module MiniGL
435
452
  # [y] The y-coordinate of the top left corner of the area.
436
453
  # [w] The width of the area.
437
454
  # [h] The height of the area.
438
- def over?(x, y, w, h)
439
- @x >= x and @x < x + w and @y >= y and @y < y + h
455
+ #
456
+ # <b>Alternate syntax</b>
457
+ #
458
+ # <code>over?(rectangle)</code>
459
+ #
460
+ # Parameters:
461
+ # [rectangle] A rectangle representing the area to be checked.
462
+ def over?(x, y = nil, w = nil, h = nil)
463
+ return @x >= x.x && @x < x.x + x.w && @y >= x.y && @y < x.y + x.h if x.is_a? Rectangle
464
+ @x >= x && @x < x + w && @y >= y && @y < y + h
440
465
  end
441
466
  end
442
467
  end
@@ -30,8 +30,8 @@ module MiniGL
30
30
  # [h] The height of the bounding box.
31
31
  # [passable] Whether a moving object can pass through this block when
32
32
  # coming from below. This is a common feature of platforms in platform
33
- # games.
34
- def initialize(x, y, w, h, passable)
33
+ # games. Default is +false+.
34
+ def initialize(x, y, w, h, passable = false)
35
35
  @x = x; @y = y; @w = w; @h = h
36
36
  @passable = passable
37
37
  end
@@ -27,6 +27,8 @@ module MiniGL
27
27
  # [mode] The alignment of the text. Valid values are +:left+, +:right+ and
28
28
  # +:center+.
29
29
  # [color] The color of the text, in hexadecimal RRGGBB format.
30
+ # [alpha] The opacity of the text. Valid values vary from 0 (fully
31
+ # transparent) to 255 (fully opaque).
30
32
  # [effect] Effect to add to the text. It can be either +nil+, for no effect,
31
33
  # +:border+ for bordered text, or +:shadow+ for shadowed text (the
32
34
  # shadow is always placed below and to the right of the text).
@@ -38,13 +40,28 @@ module MiniGL
38
40
  # distance between the text and the shadow.
39
41
  # [effect_alpha] Opacity of the effect, if any. For shadows, it is usual to
40
42
  # provide less than 255.
41
- # [alpha] The opacity of the text. Valid values vary from 0 (fully
42
- # transparent) to 255 (fully opaque).
43
43
  # [z_index] The z-order to draw the object. Objects with larger z-orders
44
44
  # will be drawn on top of the ones with smaller z-orders.
45
- def write_line(text, x, y, mode = :left, color = 0,
45
+ #
46
+ # *Obs.:* This method accepts named parameters, but +text+, +x+ and +y+ are
47
+ # mandatory.
48
+ def write_line(text, x = nil, y = nil, mode = :left, color = 0, alpha = 0xff,
46
49
  effect = nil, effect_color = 0, effect_size = 1, effect_alpha = 0xff,
47
- alpha = 0xff, z_index = 0)
50
+ z_index = 0)
51
+ if text.is_a? Hash
52
+ x = text[:x]
53
+ y = text[:y]
54
+ mode = text.fetch(:mode, :left)
55
+ color = text.fetch(:color, 0)
56
+ alpha = text.fetch(:alpha, 0xff)
57
+ effect = text.fetch(:effect, nil)
58
+ effect_color = text.fetch(:effect_color, 0)
59
+ effect_size = text.fetch(:effect_size, 1)
60
+ effect_alpha = text.fetch(:effect_alpha, 0xff)
61
+ z_index = text.fetch(:z_index, 0)
62
+ text = text[:text]
63
+ end
64
+
48
65
  color = (alpha << 24) | color
49
66
  rel =
50
67
  case mode
@@ -18,10 +18,10 @@ class MyGame < GameWindow
18
18
  @btn = Button.new(10, 560, @font1, 'Test', :btn, 0x008000, 0x808080, 0xffffff, 0xff9980, true, false, 0, 4, 0, 0, 'friends') { |x| puts "hello #{x}" }
19
19
  @btn.enabled = false
20
20
  @chk =
21
- ToggleButton.new(40, 300, @font1, 'Click me', :check, false, 0xffffff, 0x808080, 0x008000, 0xff9980, false, true, 36, 0, 0, 0, 'friends') { |c, x|
21
+ ToggleButton.new(x: 40, y: 300, font: @font1, text: 'Click me', img: :check, center_x: false, margin_x: 36, params: 'friends') { |c, x|
22
22
  puts "hello #{x}, checked: #{c}"
23
23
  }
24
- @txt = TextField.new(10, 520, @font1, :text, nil, nil, 15, 5, 16, false, '', nil, 0, 0, 0x0000ff, 'PT-BR')
24
+ @txt = TextField.new(x: 10, y: 520, font: @font1, img: :text, margin_x: 15, margin_y: 5, max_length: 16, locale: 'PT-BR')
25
25
  @txt.visible = false
26
26
 
27
27
  @pb = ProgressBar.new(5, 240, 200, 20, 0xff0000, 0x00ff00, 3456, 70, 0, 0, @font1, 0xff000080)
@@ -83,11 +83,11 @@ class MyGame < GameWindow
83
83
  clear 0xabcdef
84
84
 
85
85
  @obj1.draw nil, 1, 1, 255, 0x33ff33, 30, 1
86
- @obj2.draw nil, 0.6, 1.4, 0x99, 0xffffff, nil, :vert
87
- @obj3.draw nil, 1, 1, 255, 0xffffff, nil, @flip
88
- @writer1.write_line 'Testing effect 1', 400, 260, :center, 0xffffff, :border
89
- @writer2.write_line 'Second effect test', 400, 280, :center, 0xffffff, :border, 0xff0000, 2
90
- @writer2.write_line 'Text with shadow!!', 400, 340, :center, 0xffff00, :shadow, 0, 2, 0x80
86
+ @obj2.draw flip: :vert, scale_x: 0.5, scale_y: 1.4
87
+ @obj3.draw flip: @flip
88
+ @writer1.write_line text: 'Testing effect 1', x: 400, y: 260, color: 0xffffff, effect: :border
89
+ @writer2.write_line 'Second effect test', 400, 280, :center, 0xffffff, 255, :border, 0xff0000, 2
90
+ @writer2.write_line 'Text with shadow!!', 400, 340, :center, 0xffff00, 255, :shadow, 0, 2, 0x80
91
91
  @writer1.write_breaking "Testing multiple line text.\nThis should draw text "\
92
92
  'across multiple lines, respecting a limit width. '\
93
93
  'Furthermore, the text must be right-aligned.',
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.2
4
+ version: 2.0.3
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-03-08 00:00:00.000000000 Z
11
+ date: 2015-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gosu