minigl 2.2.0 → 2.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -4
- data/lib/minigl/forms.rb +82 -7
- data/test/game.rb +4 -4
- metadata +21 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7d451a982c58c436b84bd5de4bf52f2f6762d69d7275043aadf330b60d8ba63
|
4
|
+
data.tar.gz: 1d699e8182002420b17beac84e0d5601ddbca86cbd17c3425e09f73aa00bd819
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 941b9be8b09c005054527c571a9adfda1cdbe76090b974ee518b40f51ab9bf38fb3515a2874d2647abe68db2ccb87a07fbbbc944eb276560d972132f41556488
|
7
|
+
data.tar.gz: 37c59f05e5b10d8f8728a2c612e5bf132875946ca0a673de9a7e0176c3302a61cde07743a8a8b3b4c435ab54daaf3a2ab7ce44013a2645d393f295154be84614
|
data/README.md
CHANGED
@@ -29,8 +29,8 @@ 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.2.
|
32
|
+
## Version 2.2.1
|
33
33
|
|
34
|
-
* Added the `
|
35
|
-
*
|
36
|
-
*
|
34
|
+
* Added the `Label` class.
|
35
|
+
* Made the `x`, `y`, `w` and `h` of `Panel`s accessible.
|
36
|
+
* Fixed bug in `TextField` with starting text.
|
data/lib/minigl/forms.rb
CHANGED
@@ -23,7 +23,7 @@ module MiniGL
|
|
23
23
|
end
|
24
24
|
|
25
25
|
# This class is an abstract ancestor for all form components (Button,
|
26
|
-
# ToggleButton and
|
26
|
+
# ToggleButton, TextField, DropDownList and ProgressBar).
|
27
27
|
class Component
|
28
28
|
# The horizontal coordinate of the component
|
29
29
|
attr_reader :x
|
@@ -75,6 +75,18 @@ module MiniGL
|
|
75
75
|
|
76
76
|
# Represents a container of form components.
|
77
77
|
class Panel
|
78
|
+
# The horizontal position of the panel from the top left corner of the window.
|
79
|
+
attr_reader :x
|
80
|
+
|
81
|
+
# The vertical position of the panel from the top left corner of the window.
|
82
|
+
attr_reader :y
|
83
|
+
|
84
|
+
# The width of the panel in pixels.
|
85
|
+
attr_reader :w
|
86
|
+
|
87
|
+
# The height of the panel in pixels.
|
88
|
+
attr_reader :h
|
89
|
+
|
78
90
|
# Whether the components inside this panel are enabled.
|
79
91
|
attr_reader :enabled
|
80
92
|
|
@@ -636,7 +648,9 @@ module MiniGL
|
|
636
648
|
@text_y = y + margin_y * @scale_y
|
637
649
|
@selection_color = selection_color
|
638
650
|
|
639
|
-
@nodes = [
|
651
|
+
@nodes = [@text_x]
|
652
|
+
send(:text=, text, false) if text
|
653
|
+
|
640
654
|
@cur_node = 0
|
641
655
|
@cursor_visible = false
|
642
656
|
@cursor_timer = 0
|
@@ -840,7 +854,7 @@ module MiniGL
|
|
840
854
|
# [value] The new text to be set. If it's longer than the +max_length+
|
841
855
|
# parameter used in the constructor, it will be truncated to
|
842
856
|
# +max_length+ characters.
|
843
|
-
def text=(value)
|
857
|
+
def text=(value, trigger_changed = true)
|
844
858
|
@text = value[0...@max_length]
|
845
859
|
@nodes.clear; @nodes << @text_x
|
846
860
|
x = @nodes[0]
|
@@ -852,7 +866,7 @@ module MiniGL
|
|
852
866
|
@anchor1 = nil
|
853
867
|
@anchor2 = nil
|
854
868
|
set_cursor_visible
|
855
|
-
@on_text_changed.call @text, @params if @on_text_changed
|
869
|
+
@on_text_changed.call @text, @params if trigger_changed && @on_text_changed
|
856
870
|
end
|
857
871
|
|
858
872
|
# Sets the locale used by the text field to detect keys. Only 'en-us' and
|
@@ -1241,7 +1255,7 @@ module MiniGL
|
|
1241
1255
|
# Parameters:
|
1242
1256
|
# [x] The x-coordinate of the object.
|
1243
1257
|
# [y] The y-coordinate of the object.
|
1244
|
-
# [font] Font to be used by the buttons that compose the drop-
|
1258
|
+
# [font] Font to be used by the buttons that compose the drop-down list.
|
1245
1259
|
# [img] Image of the main button, i.e., the one at the top, that toggles
|
1246
1260
|
# visibility of the other buttons (the "option" buttons).
|
1247
1261
|
# [opt_img] Image for the "option" buttons, as described above.
|
@@ -1389,10 +1403,11 @@ module MiniGL
|
|
1389
1403
|
G.window.draw_quad b.x, b.y, c,
|
1390
1404
|
b.x + b.w, b.y, c,
|
1391
1405
|
b.x + b.w, b.y + b.h, c,
|
1392
|
-
b.x, b.y + b.h, c, z_index if b.visible
|
1406
|
+
b.x, b.y + b.h, c, z_index + 1 if b.visible
|
1393
1407
|
end
|
1394
1408
|
end
|
1395
|
-
@buttons.
|
1409
|
+
@buttons[0].draw(alpha, z_index, color)
|
1410
|
+
@buttons[1..-1].each { |b| b.draw alpha, z_index + 1, color }
|
1396
1411
|
end
|
1397
1412
|
|
1398
1413
|
private
|
@@ -1407,4 +1422,64 @@ module MiniGL
|
|
1407
1422
|
end
|
1408
1423
|
end
|
1409
1424
|
end
|
1425
|
+
|
1426
|
+
# This class represents a label.
|
1427
|
+
class Label < Component
|
1428
|
+
# Creates a new label.
|
1429
|
+
#
|
1430
|
+
# Parameters:
|
1431
|
+
# [x] The x-coordinate of the label.
|
1432
|
+
# [y] The x-coordinate of the label.
|
1433
|
+
# [font] Font that will be used to draw the label's text.
|
1434
|
+
# [text] The label's text.
|
1435
|
+
# [text_color] The default text color.
|
1436
|
+
# [disabled_text_color] The text color when the label is disabled.
|
1437
|
+
# [scale_x] The horizontal scale factor.
|
1438
|
+
# [scale_y] The vertical scale factor.
|
1439
|
+
# [anchor] See parameter with the same name in <code>Panel#initialize</code> for details.
|
1440
|
+
def initialize(x, y = nil, font = nil, text = nil, text_color = 0, disabled_text_color = 0, scale_x = 1, scale_y = 1, anchor = nil)
|
1441
|
+
if x.is_a? Hash
|
1442
|
+
y = x[:y]
|
1443
|
+
font = x[:font]
|
1444
|
+
text = x[:text]
|
1445
|
+
text_color = x.fetch(:text_color, 0)
|
1446
|
+
disabled_text_color = x.fetch(:disabled_text_color, 0)
|
1447
|
+
scale_x = x.fetch(:scale_x, 1)
|
1448
|
+
scale_y = x.fetch(:scale_y, 1)
|
1449
|
+
anchor = x.fetch(:anchor, nil)
|
1450
|
+
x = x[:x]
|
1451
|
+
end
|
1452
|
+
|
1453
|
+
@scale_x = scale_x
|
1454
|
+
@scale_y = scale_y
|
1455
|
+
@w = font.text_width(text) * scale_x
|
1456
|
+
@h = font.height * scale_y
|
1457
|
+
@anchor_offset_x = x; @anchor_offset_y = y
|
1458
|
+
@anchor, x, y = FormUtils.check_anchor(anchor, x, y, @w, @h)
|
1459
|
+
super(x, y, font, text, text_color, disabled_text_color)
|
1460
|
+
end
|
1461
|
+
|
1462
|
+
# Draws the label.
|
1463
|
+
#
|
1464
|
+
# Parameters:
|
1465
|
+
# [alpha] The opacity with which the label will be drawn. Allowed values
|
1466
|
+
# vary between 0 (fully transparent) and 255 (fully opaque).
|
1467
|
+
# [z_index] The z-order to draw the object. Objects with larger z-orders
|
1468
|
+
# will be drawn on top of the ones with smaller z-orders.
|
1469
|
+
# [color] Color to apply a filter to the text.
|
1470
|
+
def draw(alpha = 255, z_index = 0, color = 0xffffff)
|
1471
|
+
c = @enabled ? @text_color : @disabled_text_color
|
1472
|
+
r1 = c >> 16
|
1473
|
+
g1 = (c & 0xff00) >> 8
|
1474
|
+
b1 = (c & 0xff)
|
1475
|
+
r2 = color >> 16
|
1476
|
+
g2 = (color & 0xff00) >> 8
|
1477
|
+
b2 = (color & 0xff)
|
1478
|
+
r1 *= r2; r1 /= 255
|
1479
|
+
g1 *= g2; g1 /= 255
|
1480
|
+
b1 *= b2; b1 /= 255
|
1481
|
+
color = (alpha << 24) | (r1 << 16) | (g1 << 8) | b1
|
1482
|
+
@font.draw(@text, @x, @y, z_index, @scale_x, @scale_y, color)
|
1483
|
+
end
|
1484
|
+
end
|
1410
1485
|
end
|
data/test/game.rb
CHANGED
@@ -33,9 +33,10 @@ class MyGame < GameWindow
|
|
33
33
|
puts "mudou de #{a} para #{b}"
|
34
34
|
}
|
35
35
|
|
36
|
-
@panel = Panel.new(10, 10,720, 520, [
|
36
|
+
@panel = Panel.new(10, 10, 720, 520, [
|
37
37
|
Button.new(x: 5, y: 5, font: @font1, text: 'Teste', img: :btn),
|
38
|
-
|
38
|
+
Label.new(0, 70, @font1, 'Teste de label', 0xcccccc, 0x666666, 1, 1, :north),
|
39
|
+
TextField.new(x: 5, y: 40, font: @font1, text: 'Opa', img: :text, margin_x: 5, margin_y: 5, anchor: :top_left),
|
39
40
|
Button.new(x: 0, y: 5, font: @font1, text: 'Teste', img: :btn, anchor: :top),
|
40
41
|
DropDownList.new(x: 0, y: 40, width: 150, height: 25, font: @font1, options: ['olá amigos', 'opção 2', 'terceira'], anchor: :north),
|
41
42
|
Button.new(x: 5, y: 5, font: @font1, text: 'Teste', img: :btn, anchor: :northeast),
|
@@ -45,8 +46,7 @@ class MyGame < GameWindow
|
|
45
46
|
ToggleButton.new(x: 5, y: 40, img: :check, center_x: false, margin_x: 36, anchor: :east),
|
46
47
|
Button.new(x: 5, y: 5, font: @font1, text: 'Teste', img: :btn, anchor: :southwest),
|
47
48
|
Button.new(x: 0, y: 5, font: @font1, text: 'Teste', img: :btn, anchor: :south),
|
48
|
-
ProgressBar.new(0, 40, 200, 20, :barbg, :barfg, 3456, 70, 2, 2, @font1, 0xff000080, nil, nil, 1, 1, :bottom)
|
49
|
-
|
49
|
+
ProgressBar.new(0, 40, 200, 20, :barbg, :barfg, 3456, 70, 2, 2, @font1, 0xff000080, nil, nil, 1, 1, :bottom)
|
50
50
|
], :text, :tiled, true, 2, 2, :bottom_right)
|
51
51
|
|
52
52
|
@eff = Effect.new(100, 100, :check, 2, 4, 10, nil, nil, '1')
|
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.2.
|
4
|
+
version: 2.2.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: 2018-11-
|
11
|
+
date: 2018-11-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gosu
|
@@ -94,42 +94,42 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
94
|
version: '0'
|
95
95
|
requirements: []
|
96
96
|
rubyforge_project:
|
97
|
-
rubygems_version: 2.7.
|
97
|
+
rubygems_version: 2.7.8
|
98
98
|
signing_key:
|
99
99
|
specification_version: 4
|
100
100
|
summary: MiniGL
|
101
101
|
test_files:
|
102
|
-
- test/game_object_tests.rb
|
103
|
-
- test/vector_tests.rb
|
104
|
-
- test/movement_tests.rb
|
105
102
|
- test/res_tests.rb
|
106
103
|
- test/iso_game.rb
|
107
104
|
- test/mov_game.rb
|
108
105
|
- test/map_tests.rb
|
109
106
|
- test/game.rb
|
107
|
+
- test/game_object_tests.rb
|
108
|
+
- test/vector_tests.rb
|
109
|
+
- test/movement_tests.rb
|
110
110
|
- test/test.png
|
111
111
|
- test/data/font/font1.ttf
|
112
112
|
- test/data/img/square.svg
|
113
|
-
- test/data/img/
|
114
|
-
- test/data/img/
|
115
|
-
- test/data/img/image.png
|
116
|
-
- test/data/img/tile2.svg
|
117
|
-
- test/data/img/tile2.png
|
113
|
+
- test/data/img/barbg.png
|
114
|
+
- test/data/img/img1.png
|
118
115
|
- test/data/img/tile1.png
|
119
|
-
- test/data/img/
|
120
|
-
- test/data/img/
|
121
|
-
- test/data/img/
|
116
|
+
- test/data/img/tile2b.png
|
117
|
+
- test/data/img/text.png
|
118
|
+
- test/data/img/btn.png
|
119
|
+
- test/data/img/square2.svg
|
122
120
|
- test/data/img/square2.png
|
123
|
-
- test/data/img/
|
121
|
+
- test/data/img/barfg.png
|
124
122
|
- test/data/img/tile1b.png
|
125
|
-
- test/data/img/
|
123
|
+
- test/data/img/tile2.png
|
124
|
+
- test/data/img/check.png
|
125
|
+
- test/data/img/tile2.svg
|
126
126
|
- test/data/img/square3.png
|
127
|
+
- test/data/img/square3.svg
|
128
|
+
- test/data/img/image.png
|
127
129
|
- test/data/img/tile1.svg
|
128
|
-
- test/data/img/
|
129
|
-
- test/data/img/
|
130
|
-
- test/data/img/text.png
|
130
|
+
- test/data/img/square.png
|
131
|
+
- test/data/img/barbg.svg
|
131
132
|
- test/data/img/barfg.svg
|
132
|
-
- test/data/img/tile2b.png
|
133
|
-
- test/data/sound/1.wav
|
134
133
|
- test/data/tileset/tileset1.png
|
134
|
+
- test/data/sound/1.wav
|
135
135
|
- test/data/img/sub/image.png
|