minigl 1.3.9 → 1.3.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -5
  3. data/lib/minigl/forms.rb +48 -52
  4. data/test/game.rb +9 -9
  5. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d83e7665eabd1944e064d1faa88667d75b27a385
4
- data.tar.gz: f69b0515549217f87b7362eb7eeb8db49857470b
3
+ metadata.gz: 3638cd0876552f96b482a2b5986581916a27a5f9
4
+ data.tar.gz: a6e059c49297f45b360e225394b687bb2650a0a9
5
5
  SHA512:
6
- metadata.gz: e4807073c42583847ea31183c56a2e86c0be3eedb999902facd382c055062e7cebbd4592fa6dac1f3da2285947d302f01595e2bde5f48a74d057f804323438d0
7
- data.tar.gz: 3eb9adcbe982982070c1cdaf8fade39273856947dfe3e2edd841e5cf14126a690fb1a303b06f89fbc53971c4fa745171c5b25d6ddcb96efe6316a7d15fe65bca
6
+ metadata.gz: 2ac542ef6d3fe0140636b591b26336c23ed4b8fe1c7188c751f89e439a7099c2e0baaaff1e7fdae65f9d1529a73757792c9c147282e2f83418ac8e00254dad13
7
+ data.tar.gz: 68dbca5b83d9600c2d2b75c11b4c69aabd536a9a41722e0f1e1235af27e7bf195cad88809571770a9e91d61e025e777df13ed479dc8eb6e0f814c8e48d588530
data/README.md CHANGED
@@ -32,10 +32,10 @@ this [working game example](https://github.com/victords/aventura-do-saber).
32
32
  * An auxiliary, tutorial-like documentation is under construction
33
33
  [here](https://github.com/victords/minigl/wiki).
34
34
 
35
- **Version 1.3.9**
35
+ **Version 1.3.10**
36
36
 
37
- * Fixed gosu dependency (~> 0.7).
37
+ * Split the `center` parameter in `Button` and `ToggleButton` constructors
38
+ into `center_x` and `center_y` (see doc. for details).
38
39
 
39
- **P.S.** I'm sorry for the few last releases which brought so few
40
- improvements to the library... Still, I think this is better than leaving those
41
- small errors uncorrected.
40
+ **P.S.** This version can cause incompatibility because of the parameter order
41
+ in the constructors of `Button` and `ToggleButton`.
data/lib/minigl/forms.rb CHANGED
@@ -19,7 +19,7 @@ module AGL
19
19
 
20
20
  # This constructor is for internal use of the subclasses only. Do not
21
21
  # instantiate objects of this class.
22
- def initialize x, y, font, text, text_color, disabled_text_color
22
+ def initialize(x, y, font, text, text_color, disabled_text_color)
23
23
  @x = x
24
24
  @y = y
25
25
  @font = font
@@ -49,9 +49,12 @@ module AGL
49
49
  # [text_color] Color of the button text, in hexadecimal RRGGBB format.
50
50
  # [disabled_text_color] Color of the button text, when it's disabled, in
51
51
  # hexadecimal RRGGBB format.
52
- # [center] Whether the button text should be centered in its area (the
53
- # area is defined by the image size, when an image is given, or
54
- # by the +width+ and +height+ parameters, otherwise).
52
+ # [center_x] Whether the button text should be horizontally centered in its
53
+ # area (the area is defined by the image size, if an image is
54
+ # given, or by the +width+ and +height+ parameters, otherwise).
55
+ # [center_y] Whether the button text should be vertically centered in its
56
+ # area (the area is defined by the image size, if an image is
57
+ # given, or by the +width+ and +height+ parameters, otherwise).
55
58
  # [margin_x] The x offset, from the button x-coordinate, to draw the text.
56
59
  # This parameter is used only if +center+ is false.
57
60
  # [margin_y] The y offset, from the button y-coordinate, to draw the text.
@@ -68,8 +71,8 @@ module AGL
68
71
  # parameters.
69
72
  # [action] The block of code executed when the button is clicked (or by
70
73
  # calling the +click+ method).
71
- def initialize x, y, font, text, img, text_color = 0, disabled_text_color = 0, center = true, margin_x = 0, margin_y = 0,
72
- width = nil, height = nil, params = nil, &action
74
+ def initialize(x, y, font, text, img, text_color = 0, disabled_text_color = 0, center_x = true, center_y = true,
75
+ margin_x = 0, margin_y = 0, width = nil, height = nil, params = nil, &action)
73
76
  super x, y, font, text, text_color, disabled_text_color
74
77
  @img =
75
78
  if img; Res.imgs img, 1, 4, true
@@ -80,14 +83,12 @@ module AGL
80
83
  @h =
81
84
  if img; @img[0].height
82
85
  else; height; end
83
- if center
84
- @text_x = x + @w / 2 if @w
85
- @text_y = y + @h / 2 if @h
86
- else
87
- @text_x = x + margin_x
88
- @text_y = y + margin_y
89
- end
90
- @center = center
86
+ if center_x; @text_x = x + @w / 2 if @w
87
+ else; @text_x = x + margin_x; end
88
+ if center_y; @text_y = y + @h / 2 if @h
89
+ else; @text_y = y + margin_y; end
90
+ @center_x = center_x
91
+ @center_y = center_y
91
92
  @action = action
92
93
  @params = params
93
94
 
@@ -155,17 +156,12 @@ module AGL
155
156
  # Parameters:
156
157
  # [x] The new x-coordinate for the button.
157
158
  # [y] The new y-coordinate for the button.
158
- def set_position x, y
159
- d_x = x - @x
160
- d_y = y - @y
159
+ def set_position(x, y)
160
+ if @center_x; @text_x = x + @w / 2
161
+ else; @text_x += x - @x; end
162
+ if @center_y; @text_y = y + @h / 2
163
+ else; @text_y += y - @y; end
161
164
  @x = x; @y = y
162
- if @center
163
- @text_x = x + @w / 2
164
- @text_y = y + @h / 2
165
- else
166
- @text_x += d_x
167
- @text_y += d_y
168
- end
169
165
  end
170
166
 
171
167
  # Draws the button in the screen.
@@ -175,22 +171,24 @@ module AGL
175
171
  # vary between 0 (fully transparent) and 255 (fully opaque).
176
172
  # [z_index] The z-order to draw the object. Objects with larger z-orders
177
173
  # will be drawn on top of the ones with smaller z-orders.
178
- def draw alpha = 0xff, z_index = 0
174
+ def draw(alpha = 0xff, z_index = 0)
179
175
  return unless @visible
180
176
 
181
177
  color = (alpha << 24) | 0xffffff
182
178
  text_color = (alpha << 24) | (@enabled ? @text_color : @disabled_text_color)
183
179
  @img[@img_index].draw @x, @y, z_index, 1, 1, color if @img
184
180
  if @text
185
- if @center
186
- @font.draw_rel @text, @text_x, @text_y, z_index, 0.5, 0.5, 1, 1, text_color
181
+ if @center_x or @center_y
182
+ rel_x = @center_x ? 0.5 : 0
183
+ rel_y = @center_y ? 0.5 : 0
184
+ @font.draw_rel @text, @text_x, @text_y, z_index, rel_x, rel_y, 1, 1, text_color
187
185
  else
188
186
  @font.draw @text, @text_x, @text_y, z_index, 1, 1, text_color
189
187
  end
190
188
  end
191
189
  end
192
190
 
193
- def enabled= value # :nodoc:
191
+ def enabled=(value) # :nodoc:
194
192
  @enabled = value
195
193
  @state = :up
196
194
  @img_index = 3
@@ -217,9 +215,9 @@ module AGL
217
215
  # puts "button was checked" if checked
218
216
  # # do something with params
219
217
  # }
220
- def initialize x, y, font, text, img, checked = false, text_color = 0, disabled_text_color = 0, center = true, margin_x = 0, margin_y = 0,
221
- width = nil, height = nil, params = nil, &action
222
- super x, y, font, text, nil, text_color, disabled_text_color, center, margin_x, margin_y, width, height, params, &action
218
+ def initialize(x, y, font, text, img, checked = false, text_color = 0, disabled_text_color = 0, center_x = true, center_y = true,
219
+ margin_x = 0, margin_y = 0, width = nil, height = nil, params = nil, &action)
220
+ super x, y, font, text, nil, text_color, disabled_text_color, center_x, center_y, margin_x, margin_y, width, height, params, &action
223
221
  @img =
224
222
  if img; Res.imgs img, 2, 4, true
225
223
  else; nil; end
@@ -229,10 +227,8 @@ module AGL
229
227
  @h =
230
228
  if img; @img[0].height
231
229
  else; height; end
232
- if center
233
- @text_x = x + @w / 2
234
- @text_y = y + @h / 2
235
- end
230
+ @text_x = x + @w / 2 if center_x
231
+ @text_y = y + @h / 2 if center_y
236
232
  @checked = checked
237
233
  end
238
234
 
@@ -258,12 +254,12 @@ module AGL
258
254
  #
259
255
  # Parameters:
260
256
  # [value] The state to be set (+true+ for checked, +false+ for unchecked).
261
- def checked= value
257
+ def checked=(value)
262
258
  click if value != @checked
263
259
  @checked = value
264
260
  end
265
261
 
266
- def enabled= value # :nodoc:
262
+ def enabled=(value) # :nodoc:
267
263
  @enabled = value
268
264
  @state = :up
269
265
  @img_index = @checked ? 7 : 6
@@ -320,8 +316,8 @@ module AGL
320
316
  # field is changed, either by user input or by calling
321
317
  # +text=+. The new text is passed as a first parameter
322
318
  # to this block, followed by +params+. Can be +nil+.
323
- def initialize x, y, font, img, cursor_img = nil, disabled_img = nil, margin_x = 0, margin_y = 0, max_length = 100, active = false, text = "",
324
- allowed_chars = nil, text_color = 0, disabled_text_color = 0, selection_color = 0, params = nil, &on_text_changed
319
+ def initialize(x, y, font, img, cursor_img = nil, disabled_img = nil, margin_x = 0, margin_y = 0, max_length = 100, active = false, text = '',
320
+ allowed_chars = nil, text_color = 0, disabled_text_color = 0, selection_color = 0, params = nil, &on_text_changed)
325
321
  super x, y, font, text, text_color, disabled_text_color
326
322
  @img = Res.img img
327
323
  @w = @img.width
@@ -417,10 +413,10 @@ module AGL
417
413
  end
418
414
 
419
415
  ############################### Keyboard ##############################
420
- shift = ((KB.key_down? @k[53]) or (KB.key_down? @k[54]))
421
- if ((KB.key_pressed? @k[53]) or (KB.key_pressed? @k[54])) # shift
416
+ shift = (KB.key_down?(@k[53]) or KB.key_down?(@k[54]))
417
+ if KB.key_pressed?(@k[53]) or KB.key_pressed?(@k[54]) # shift
422
418
  @anchor1 = @cur_node if @anchor1.nil?
423
- elsif ((KB.key_released? @k[53]) or (KB.key_released? @k[54]))
419
+ elsif KB.key_released?(@k[53]) or KB.key_released?(@k[54])
424
420
  @anchor1 = nil if @anchor2.nil?
425
421
  end
426
422
  inserted = false
@@ -530,7 +526,7 @@ module AGL
530
526
  # [value] The new text to be set. If it's longer than the +max_length+
531
527
  # parameter used in the constructor, it will be truncated to
532
528
  # +max_length+ characters.
533
- def text= value
529
+ def text=(value)
534
530
  @text = value[0...@max_length]
535
531
  @nodes.clear; @nodes << @text_x
536
532
  x = @nodes[0]
@@ -547,7 +543,7 @@ module AGL
547
543
 
548
544
  # Returns the currently selected text.
549
545
  def selected_text
550
- return "" if @anchor2.nil?
546
+ return '' if @anchor2.nil?
551
547
  min = @anchor1 < @anchor2 ? @anchor1 : @anchor2
552
548
  max = min == @anchor1 ? @anchor2 : @anchor1
553
549
  @text[min..max]
@@ -572,7 +568,7 @@ module AGL
572
568
  # Parameters:
573
569
  # [x] The new x-coordinate for the text field.
574
570
  # [y] The new y-coordinate for the text field.
575
- def set_position x, y
571
+ def set_position(x, y)
576
572
  d_x = x - @x
577
573
  d_y = y - @y
578
574
  @x = x; @y = y
@@ -590,7 +586,7 @@ module AGL
590
586
  # values vary between 0 (fully transparent) and 255 (fully opaque).
591
587
  # [z_index] The z-order to draw the object. Objects with larger z-orders
592
588
  # will be drawn on top of the ones with smaller z-orders.
593
- def draw alpha = 0xff, z_index = 0
589
+ def draw(alpha = 0xff, z_index = 0)
594
590
  return unless @visible
595
591
 
596
592
  color = (alpha << 24) | ((@enabled or @disabled_img) ? 0xffffff : 0x808080)
@@ -620,12 +616,12 @@ module AGL
620
616
  end
621
617
  end
622
618
 
623
- def enabled= value # :nodoc:
619
+ def enabled=(value) # :nodoc:
624
620
  @enabled = value
625
621
  unfocus unless @enabled
626
622
  end
627
623
 
628
- def visible= value # :nodoc:
624
+ def visible=(value) # :nodoc:
629
625
  @visible = value
630
626
  unfocus unless @visible
631
627
  end
@@ -652,7 +648,7 @@ module AGL
652
648
  @cur_node = index
653
649
  end
654
650
 
655
- def insert_char char
651
+ def insert_char(char)
656
652
  return unless @allowed_chars.index char and @text.length < @max_length
657
653
  @text.insert @cur_node, char
658
654
  @nodes.insert @cur_node + 1, @nodes[@cur_node] + @font.text_width(char)
@@ -664,7 +660,7 @@ module AGL
664
660
  @on_text_changed.call @text, @params if @on_text_changed
665
661
  end
666
662
 
667
- def remove_interval will_insert = false
663
+ def remove_interval(will_insert = false)
668
664
  min = @anchor1 < @anchor2 ? @anchor1 : @anchor2
669
665
  max = min == @anchor1 ? @anchor2 : @anchor1
670
666
  interval_width = 0
@@ -683,10 +679,10 @@ module AGL
683
679
  @on_text_changed.call @text, @params if @on_text_changed and not will_insert
684
680
  end
685
681
 
686
- def remove_char back
682
+ def remove_char(back)
687
683
  @cur_node -= 1 if back
688
684
  char_width = @font.text_width(@text[@cur_node])
689
- @text[@cur_node] = ""
685
+ @text[@cur_node] = ''
690
686
  @nodes.delete_at @cur_node + 1
691
687
  for i in (@cur_node + 1)..(@nodes.size - 1)
692
688
  @nodes[i] -= char_width
data/test/game.rb CHANGED
@@ -5,21 +5,21 @@ class MyGame < Gosu::Window
5
5
  def initialize
6
6
  super 800, 600, false # creating a 800 x 600 window, not full screen
7
7
  Game.initialize self, Vector.new(0, 1), 10, 2
8
-
8
+
9
9
  @obj1 = GameObject.new 10, 10, 80, 80, :img1, Vector.new(-10, -10)
10
10
  @obj2 = Sprite.new 400, 0, :img1
11
-
11
+
12
12
  @font = Res.font :font1, 20
13
13
  @writer = TextHelper.new @font, 5
14
- @btn = Button.new(10, 560, @font, "Test", :btn, 0x008000, 0x808080, 0, 0, 0, 0, 0, "friends") { |x| puts "hello #{x}" }
14
+ @btn = Button.new(10, 560, @font, 'Test', :btn, 0x008000, 0x808080, true, false, 0, 4, 0, 0, 'friends') { |x| puts "hello #{x}" }
15
15
  @btn.enabled = false
16
- @chk = ToggleButton.new(740, 300, @font, "Click me", :check, false, 0xffffff, 0x808080, false, 36, 5, 0, 0, "friends") { |c, x|
16
+ @chk = ToggleButton.new(40, 300, @font, 'Click me', :check, false, 0xffffff, 0x808080, false, true, 36, 0, 0, 0, 'friends') { |c, x|
17
17
  puts "hello #{x}, checked: #{c}"
18
18
  }
19
- @txt = TextField.new(10, 520, @font, :text, nil, nil, 15, 5, 16, false, "", nil, 0, 0, 0x0000ff, "test") { |t, x| puts "field #{x}, text: #{t}" }
19
+ @txt = TextField.new(10, 520, @font, :text, nil, nil, 15, 5, 16, false, '', nil, 0, 0, 0x0000ff, 'test') { |t, x| puts "field #{x}, text: #{t}" }
20
20
  @txt.visible = false
21
21
  end
22
-
22
+
23
23
  def needs_cursor?
24
24
  true
25
25
  end
@@ -36,13 +36,13 @@ class MyGame < Gosu::Window
36
36
  @chk.enabled = !@chk.enabled if KB.key_pressed? Gosu::KbRightControl
37
37
  @txt.visible = !@txt.visible if KB.key_pressed? Gosu::KbReturn
38
38
  @txt.enabled = !@txt.enabled if KB.key_pressed? Gosu::KbLeftAlt
39
-
39
+
40
40
  Mouse.update
41
41
  if Mouse.double_click? :left
42
42
  @obj1.x = Mouse.x + 10
43
43
  @obj1.y = Mouse.y + 10
44
44
  end
45
-
45
+
46
46
  @btn.update
47
47
  @chk.update
48
48
  @txt.update
@@ -55,7 +55,7 @@ class MyGame < Gosu::Window
55
55
  "across multiple lines, respecting a limit width. "\
56
56
  "Furthermore, the text must be right-aligned.",
57
57
  780, 300, 300, :right, 0xff0000, 255, 1
58
-
58
+
59
59
  @btn.draw 0xcc
60
60
  @chk.draw
61
61
  @txt.draw
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: 1.3.9
4
+ version: 1.3.10
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: 2014-11-16 00:00:00.000000000 Z
11
+ date: 2014-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gosu