nyle 0.6.0 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -3
- data/CHANGELOG.md +21 -0
- data/Gemfile.lock +61 -0
- data/README.md +2 -2
- data/doc/.gitkeep +0 -0
- data/lib/nyle.rb +53 -44
- data/lib/nyle/frame.rb +18 -3
- data/lib/nyle/screen.rb +5 -4
- data/lib/nyle/version.rb +1 -1
- data/nyle.gemspec +2 -2
- data/samples/{nyle_block.rb → application/block.rb} +0 -1
- data/samples/{nyle_clock.rb → application/clock.rb} +0 -1
- data/samples/{nyle_falling.rb → application/falling.rb} +5 -7
- data/samples/{nyle_flight.rb → application/flight.rb} +6 -9
- data/samples/{nyle_sketch.rb → application/sketch.rb} +0 -1
- data/samples/{nyle_sugar.rb → application/sugar.rb} +1 -1
- data/samples/{nyle_tree.rb → application/tree.rb} +2 -3
- data/samples/basic/color_chart.rb +316 -0
- data/samples/{nyle_pixel.rb → basic/color_pixel.rb} +1 -1
- data/samples/basic/draw_circle.rb +52 -0
- data/samples/basic/draw_line.rb +82 -0
- data/samples/basic/draw_rect.rb +58 -0
- data/samples/{nyle_shape.rb → basic/draw_shape.rb} +70 -70
- data/samples/basic/draw_text.rb +55 -0
- data/samples/basic/image_click.rb +33 -0
- data/samples/basic/image_rotate.rb +42 -0
- data/samples/{nyle_rpg.rb → basic/image_rpg.rb} +15 -15
- data/samples/basic/keyboard.rb +84 -0
- data/samples/{nyle_walk_notrace.rb → basic/random_walk.rb} +3 -3
- data/samples/{nyle_walk_trace.rb → basic/random_walk_trace.rb} +3 -3
- data/samples/image/n_c_mogura.png +0 -0
- data/samples/launcher.rb +125 -0
- data/samples/tips/.gitkeep +0 -0
- data/samples/tutorial/img.jpg +0 -0
- data/samples/tutorial/tut_a10.rb +10 -0
- data/samples/tutorial/tut_a20.rb +13 -0
- data/samples/tutorial/tut_a30.rb +18 -0
- data/samples/tutorial/tut_a40.rb +19 -0
- data/samples/tutorial/tut_a45.rb +21 -0
- data/samples/tutorial/tut_a50.rb +25 -0
- data/samples/tutorial/tut_a60.rb +30 -0
- data/samples/tutorial/tut_a70.rb +34 -0
- data/samples/tutorial/tut_b10.rb +14 -0
- data/samples/tutorial/tut_b20.rb +14 -0
- data/samples/tutorial/tut_b30.rb +14 -0
- data/samples/tutorial/tut_b40.rb +18 -0
- metadata +42 -23
- data/doc/Nyle_reference.pdf +0 -0
- data/samples/image/n_b_river.gif +0 -0
- data/samples/nyle_basics.rb +0 -69
- data/samples/nyle_basics2.rb +0 -70
- data/samples/nyle_click.rb +0 -34
- data/samples/nyle_colors.rb +0 -315
- data/samples/readme_samples.txt +0 -36
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'nyle'
|
2
|
+
|
3
|
+
class Screen < Nyle::Screen
|
4
|
+
def initialize
|
5
|
+
super
|
6
|
+
end
|
7
|
+
|
8
|
+
def draw
|
9
|
+
Nyle.draw_line( 40, 70, 100, 10)
|
10
|
+
Nyle.draw_line( 90, 70, 150, 10, {weight: 4})
|
11
|
+
Nyle.draw_line(140, 70, 200, 10, {weight: 6})
|
12
|
+
Nyle.draw_line(190, 70, 250, 10, {weight: 8})
|
13
|
+
Nyle.draw_line(240, 70, 300, 10, {weight: 10})
|
14
|
+
Nyle.draw_line(310, 70, 370, 10, { cap: :ROUND})
|
15
|
+
Nyle.draw_line(360, 70, 420, 10, {weight: 4, cap: :ROUND})
|
16
|
+
Nyle.draw_line(410, 70, 470, 10, {weight: 6, cap: :ROUND})
|
17
|
+
Nyle.draw_line(460, 70, 520, 10, {weight: 8, cap: :ROUND})
|
18
|
+
Nyle.draw_line(510, 70, 570, 10, {weight: 10, cap: :ROUND})
|
19
|
+
|
20
|
+
Nyle.draw_line( 40, 150, 100, 90, { a: 0.2})
|
21
|
+
Nyle.draw_line( 90, 150, 150, 90, {weight: 4 , a: 0.4})
|
22
|
+
Nyle.draw_line(140, 150, 200, 90, {weight: 6 , a: 0.6})
|
23
|
+
Nyle.draw_line(190, 150, 250, 90, {weight: 8 , a: 0.8})
|
24
|
+
Nyle.draw_line(240, 150, 300, 90, {weight: 10 , a: 1.0})
|
25
|
+
Nyle.draw_line(310, 150, 370, 90, { cap: :ROUND, a: 0.2})
|
26
|
+
Nyle.draw_line(360, 150, 420, 90, {weight: 4, cap: :ROUND, a: 0.4})
|
27
|
+
Nyle.draw_line(410, 150, 470, 90, {weight: 6, cap: :ROUND, a: 0.6})
|
28
|
+
Nyle.draw_line(460, 150, 520, 90, {weight: 8, cap: :ROUND, a: 0.8})
|
29
|
+
Nyle.draw_line(510, 150, 570, 90, {weight: 10, cap: :ROUND, a: 1.0})
|
30
|
+
|
31
|
+
Nyle.draw_line( 40, 230, 100, 170, { a: 0.2, color: :RED})
|
32
|
+
Nyle.draw_line( 90, 230, 150, 170, {weight: 4 , a: 0.4, color: :RED})
|
33
|
+
Nyle.draw_line(140, 230, 200, 170, {weight: 6 , a: 0.6, color: :RED})
|
34
|
+
Nyle.draw_line(190, 230, 250, 170, {weight: 8 , a: 0.8, color: :RED})
|
35
|
+
Nyle.draw_line(240, 230, 300, 170, {weight: 10 , a: 1.0, color: :RED})
|
36
|
+
Nyle.draw_line(310, 230, 370, 170, { cap: :ROUND, a: 0.2, color: :RED})
|
37
|
+
Nyle.draw_line(360, 230, 420, 170, {weight: 4, cap: :ROUND, a: 0.4, color: :RED})
|
38
|
+
Nyle.draw_line(410, 230, 470, 170, {weight: 6, cap: :ROUND, a: 0.6, color: :RED})
|
39
|
+
Nyle.draw_line(460, 230, 520, 170, {weight: 8, cap: :ROUND, a: 0.8, color: :RED})
|
40
|
+
Nyle.draw_line(510, 230, 570, 170, {weight: 10, cap: :ROUND, a: 1.0, color: :RED})
|
41
|
+
|
42
|
+
Nyle.draw_line( 40, 310, 100, 250, { a: 0.2, color: :FOREST_GREEN})
|
43
|
+
Nyle.draw_line( 90, 310, 150, 250, {weight: 4 , a: 0.4, color: :FOREST_GREEN})
|
44
|
+
Nyle.draw_line(140, 310, 200, 250, {weight: 6 , a: 0.6, color: :FOREST_GREEN})
|
45
|
+
Nyle.draw_line(190, 310, 250, 250, {weight: 8 , a: 0.8, color: :FOREST_GREEN})
|
46
|
+
Nyle.draw_line(240, 310, 300, 250, {weight: 10 , a: 1.0, color: :FOREST_GREEN})
|
47
|
+
Nyle.draw_line(310, 310, 370, 250, { cap: :ROUND, a: 0.2, color: :FOREST_GREEN})
|
48
|
+
Nyle.draw_line(360, 310, 420, 250, {weight: 4, cap: :ROUND, a: 0.4, color: :FOREST_GREEN})
|
49
|
+
Nyle.draw_line(410, 310, 470, 250, {weight: 6, cap: :ROUND, a: 0.6, color: :FOREST_GREEN})
|
50
|
+
Nyle.draw_line(460, 310, 520, 250, {weight: 8, cap: :ROUND, a: 0.8, color: :FOREST_GREEN})
|
51
|
+
Nyle.draw_line(510, 310, 570, 250, {weight: 10, cap: :ROUND, a: 1.0, color: :FOREST_GREEN})
|
52
|
+
|
53
|
+
Nyle.draw_line( 40, 390, 100, 330, { a: 0.2, color: :COBALT})
|
54
|
+
Nyle.draw_line( 90, 390, 150, 330, {weight: 4 , a: 0.4, color: :COBALT})
|
55
|
+
Nyle.draw_line(140, 390, 200, 330, {weight: 6 , a: 0.6, color: :COBALT})
|
56
|
+
Nyle.draw_line(190, 390, 250, 330, {weight: 8 , a: 0.8, color: :COBALT})
|
57
|
+
Nyle.draw_line(240, 390, 300, 330, {weight: 10 , a: 1.0, color: :COBALT})
|
58
|
+
Nyle.draw_line(310, 390, 370, 330, { cap: :ROUND, a: 0.2, color: :COBALT})
|
59
|
+
Nyle.draw_line(360, 390, 420, 330, {weight: 4, cap: :ROUND, a: 0.4, color: :COBALT})
|
60
|
+
Nyle.draw_line(410, 390, 470, 330, {weight: 6, cap: :ROUND, a: 0.6, color: :COBALT})
|
61
|
+
Nyle.draw_line(460, 390, 520, 330, {weight: 8, cap: :ROUND, a: 0.8, color: :COBALT})
|
62
|
+
Nyle.draw_line(510, 390, 570, 330, {weight: 10, cap: :ROUND, a: 1.0, color: :COBALT})
|
63
|
+
|
64
|
+
Nyle.draw_line( 40, 470, 100, 410, { a: 0.2, color: :GOLD})
|
65
|
+
Nyle.draw_line( 90, 470, 150, 410, {weight: 4 , a: 0.4, color: :GOLD})
|
66
|
+
Nyle.draw_line(140, 470, 200, 410, {weight: 6 , a: 0.6, color: :GOLD})
|
67
|
+
Nyle.draw_line(190, 470, 250, 410, {weight: 8 , a: 0.8, color: :GOLD})
|
68
|
+
Nyle.draw_line(240, 470, 300, 410, {weight: 10 , a: 1.0, color: :GOLD})
|
69
|
+
Nyle.draw_line(310, 470, 370, 410, { cap: :ROUND, a: 0.2, color: :GOLD})
|
70
|
+
Nyle.draw_line(360, 470, 420, 410, {weight: 4, cap: :ROUND, a: 0.4, color: :GOLD})
|
71
|
+
Nyle.draw_line(410, 470, 470, 410, {weight: 6, cap: :ROUND, a: 0.6, color: :GOLD})
|
72
|
+
Nyle.draw_line(460, 470, 520, 410, {weight: 8, cap: :ROUND, a: 0.8, color: :GOLD})
|
73
|
+
Nyle.draw_line(510, 470, 570, 410, {weight: 10, cap: :ROUND, a: 1.0, color: :GOLD})
|
74
|
+
|
75
|
+
Nyle.quit if Nyle.key_press?(KEY_Escape)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
Screen.new.show_all
|
81
|
+
Gtk.main
|
82
|
+
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'nyle'
|
2
|
+
|
3
|
+
class Screen < Nyle::Screen
|
4
|
+
def initialize
|
5
|
+
super
|
6
|
+
end
|
7
|
+
|
8
|
+
def draw
|
9
|
+
Nyle.draw_rect( 90, 40, 60, 40)
|
10
|
+
Nyle.draw_rect(190, 40, 60, 40, {weight: 4})
|
11
|
+
Nyle.draw_rect(290, 40, 60, 40, {weight: 6})
|
12
|
+
Nyle.draw_rect(390, 40, 60, 40, {weight: 8})
|
13
|
+
Nyle.draw_rect(490, 40, 60, 40, {weight: 10})
|
14
|
+
|
15
|
+
Nyle.draw_rect( 90, 100, 60, 40, {round: 4})
|
16
|
+
Nyle.draw_rect(190, 100, 60, 40, {round: 8})
|
17
|
+
Nyle.draw_rect(290, 100, 60, 40, {round: 12})
|
18
|
+
Nyle.draw_rect(390, 100, 60, 40, {round: 16})
|
19
|
+
Nyle.draw_rect(490, 100, 60, 40, {round: 20})
|
20
|
+
|
21
|
+
Nyle.draw_rect( 90, 160, 60, 40, {fill: true, a: 0.2})
|
22
|
+
Nyle.draw_rect(190, 160, 60, 40, {fill: true, a: 0.4})
|
23
|
+
Nyle.draw_rect(290, 160, 60, 40, {fill: true, a: 0.6})
|
24
|
+
Nyle.draw_rect(390, 160, 60, 40, {fill: true, a: 0.8})
|
25
|
+
Nyle.draw_rect(490, 160, 60, 40, {fill: true, a: 1.0})
|
26
|
+
|
27
|
+
Nyle.draw_rect( 90, 220, 60, 40, {fill: true, a: 0.2, color: :RED})
|
28
|
+
Nyle.draw_rect(190, 220, 60, 40, {fill: true, a: 0.4, color: :RED})
|
29
|
+
Nyle.draw_rect(290, 220, 60, 40, {fill: true, a: 0.6, color: :RED})
|
30
|
+
Nyle.draw_rect(390, 220, 60, 40, {fill: true, a: 0.8, color: :RED})
|
31
|
+
Nyle.draw_rect(490, 220, 60, 40, {fill: true, a: 1.0, color: :RED})
|
32
|
+
|
33
|
+
Nyle.draw_rect( 90, 280, 60, 40, {fill: true, a: 0.2, color: :FOREST_GREEN})
|
34
|
+
Nyle.draw_rect(190, 280, 60, 40, {fill: true, a: 0.4, color: :FOREST_GREEN})
|
35
|
+
Nyle.draw_rect(290, 280, 60, 40, {fill: true, a: 0.6, color: :FOREST_GREEN})
|
36
|
+
Nyle.draw_rect(390, 280, 60, 40, {fill: true, a: 0.8, color: :FOREST_GREEN})
|
37
|
+
Nyle.draw_rect(490, 280, 60, 40, {fill: true, a: 1.0, color: :FOREST_GREEN})
|
38
|
+
|
39
|
+
Nyle.draw_rect( 90, 340, 60, 40, {fill: true, a: 0.2, color: :COBALT})
|
40
|
+
Nyle.draw_rect(190, 340, 60, 40, {fill: true, a: 0.4, color: :COBALT})
|
41
|
+
Nyle.draw_rect(290, 340, 60, 40, {fill: true, a: 0.6, color: :COBALT})
|
42
|
+
Nyle.draw_rect(390, 340, 60, 40, {fill: true, a: 0.8, color: :COBALT})
|
43
|
+
Nyle.draw_rect(490, 340, 60, 40, {fill: true, a: 1.0, color: :COBALT})
|
44
|
+
|
45
|
+
Nyle.draw_rect( 90, 400, 60, 40, {fill: true, a: 0.2, color: :GOLD})
|
46
|
+
Nyle.draw_rect(190, 400, 60, 40, {fill: true, a: 0.4, color: :GOLD})
|
47
|
+
Nyle.draw_rect(290, 400, 60, 40, {fill: true, a: 0.6, color: :GOLD})
|
48
|
+
Nyle.draw_rect(390, 400, 60, 40, {fill: true, a: 0.8, color: :GOLD})
|
49
|
+
Nyle.draw_rect(490, 400, 60, 40, {fill: true, a: 1.0, color: :GOLD})
|
50
|
+
|
51
|
+
Nyle.quit if Nyle.key_press?(KEY_Escape)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
Screen.new.show_all
|
57
|
+
Gtk.main
|
58
|
+
|
@@ -1,70 +1,70 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
[x,
|
8
|
-
[x +
|
9
|
-
[x +
|
10
|
-
[x +
|
11
|
-
[x
|
12
|
-
[x,
|
13
|
-
[x -
|
14
|
-
[x -
|
15
|
-
[x -
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
points << [x +
|
29
|
-
points << [x +
|
30
|
-
points << [x +
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
Screen.new.show_all
|
69
|
-
Gtk.main
|
70
|
-
|
1
|
+
require 'nyle'
|
2
|
+
|
3
|
+
module Points
|
4
|
+
def star(x, y)
|
5
|
+
[
|
6
|
+
[x, y - 50],
|
7
|
+
[x + 14, y - 20],
|
8
|
+
[x + 47, y - 15],
|
9
|
+
[x + 23, y + 7],
|
10
|
+
[x + 29, y + 40],
|
11
|
+
[x, y + 25],
|
12
|
+
[x - 29, y + 40],
|
13
|
+
[x - 23, y + 7],
|
14
|
+
[x - 47, y - 15],
|
15
|
+
[x - 14, y - 20]
|
16
|
+
]
|
17
|
+
end
|
18
|
+
|
19
|
+
def para_star(x, y)
|
20
|
+
rl, rm, rs = 70, 50, 30 # radius(large, middle, small)
|
21
|
+
count = 10
|
22
|
+
angle = 360.0 / (count * 4) # central angle of each vertex
|
23
|
+
deg = Math::PI / 180.0
|
24
|
+
|
25
|
+
points = []
|
26
|
+
for i in 1..count
|
27
|
+
points << [x + rs * Math.cos((i * 4 - 3) * angle * deg), y + rs * Math.sin((i * 4 - 3) * angle * deg)]
|
28
|
+
points << [x + rm * Math.cos((i * 4 - 2) * angle * deg), y + rm * Math.sin((i * 4 - 2) * angle * deg)]
|
29
|
+
points << [x + rs * Math.cos((i * 4 - 1) * angle * deg), y + rs * Math.sin((i * 4 - 1) * angle * deg)]
|
30
|
+
points << [x + rl * Math.cos((i * 4 - 0) * angle * deg), y + rl * Math.sin((i * 4 - 0) * angle * deg)]
|
31
|
+
end
|
32
|
+
points
|
33
|
+
end
|
34
|
+
|
35
|
+
def wave(x, y)
|
36
|
+
points = []
|
37
|
+
for deg in 0..(360 * 6)
|
38
|
+
th = -deg * (Math::PI / 180)
|
39
|
+
points << [deg / 5 + x, Math.sin(th) * 20 + y]
|
40
|
+
end
|
41
|
+
points
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
class Screen < Nyle::Screen
|
47
|
+
include Points
|
48
|
+
def initialize
|
49
|
+
super
|
50
|
+
end
|
51
|
+
def draw
|
52
|
+
Nyle.draw_shape(star(160, 100), {color: :GOLD, weight: 5, close: true})
|
53
|
+
Nyle.draw_shape(star(320, 100), {color: :GOLD, weight: 5, close: true, fill: true})
|
54
|
+
Nyle.draw_shape(star(480, 100), {color: :GOLD, a: 0.5, weight: 5, close: true, fill: true})
|
55
|
+
|
56
|
+
Nyle.draw_shape(para_star(160, 240), {color: :BROWN, weight: 3, close: true})
|
57
|
+
Nyle.draw_shape(para_star(320, 240), {color: :BROWN, weight: 3, close: true, fill: true})
|
58
|
+
Nyle.draw_shape(para_star(480, 240), {color: :BROWN, a: 0.5, weight: 3, close: true, fill: true})
|
59
|
+
|
60
|
+
Nyle.draw_shape(wave(100, 360), {color: :SKY_BLUE, weight: 5, cap: :ROUND})
|
61
|
+
Nyle.draw_shape(wave(100, 410), {color: :SKY_BLUE, weight: 5, cap: :ROUND, fill: true})
|
62
|
+
|
63
|
+
Nyle.quit if Nyle.key_press?(KEY_Escape)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
|
68
|
+
Screen.new.show_all
|
69
|
+
Gtk.main
|
70
|
+
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'nyle'
|
2
|
+
|
3
|
+
class Screen < Nyle::Screen
|
4
|
+
def initialize
|
5
|
+
super
|
6
|
+
end
|
7
|
+
|
8
|
+
def draw
|
9
|
+
Nyle.draw_text( 80, 70, "Nyle", {size: 16})
|
10
|
+
Nyle.draw_text(140, 70, "Nyle", {size: 24})
|
11
|
+
Nyle.draw_text(220, 70, "Nyle", {size: 32})
|
12
|
+
Nyle.draw_text(320, 70, "Nyle", {size: 40})
|
13
|
+
Nyle.draw_text(440, 70, "Nyle", {size: 48})
|
14
|
+
|
15
|
+
Nyle.draw_text( 80, 120, "Nyle", {size: 16, a: 1.0})
|
16
|
+
Nyle.draw_text(140, 120, "Nyle", {size: 24, a: 0.8})
|
17
|
+
Nyle.draw_text(220, 120, "Nyle", {size: 32, a: 0.6})
|
18
|
+
Nyle.draw_text(320, 120, "Nyle", {size: 40, a: 0.4})
|
19
|
+
Nyle.draw_text(440, 120, "Nyle", {size: 48, a: 0.2})
|
20
|
+
|
21
|
+
Nyle.draw_text( 80, 170, "Nyle", {size: 16, color: :RED})
|
22
|
+
Nyle.draw_text(140, 170, "Nyle", {size: 24, color: :RED})
|
23
|
+
Nyle.draw_text(220, 170, "Nyle", {size: 32, color: :RED})
|
24
|
+
Nyle.draw_text(320, 170, "Nyle", {size: 40, color: :RED})
|
25
|
+
Nyle.draw_text(440, 170, "Nyle", {size: 48, color: :RED})
|
26
|
+
|
27
|
+
Nyle.draw_text( 80, 220, "Nyle", {size: 16, color: :FOREST_GREEN})
|
28
|
+
Nyle.draw_text(140, 220, "Nyle", {size: 24, color: :FOREST_GREEN})
|
29
|
+
Nyle.draw_text(220, 220, "Nyle", {size: 32, color: :FOREST_GREEN})
|
30
|
+
Nyle.draw_text(320, 220, "Nyle", {size: 40, color: :FOREST_GREEN})
|
31
|
+
Nyle.draw_text(440, 220, "Nyle", {size: 48, color: :FOREST_GREEN})
|
32
|
+
|
33
|
+
Nyle.draw_text( 80, 270, "Nyle", {size: 16, color: :COBALT})
|
34
|
+
Nyle.draw_text(140, 270, "Nyle", {size: 24, color: :COBALT})
|
35
|
+
Nyle.draw_text(220, 270, "Nyle", {size: 32, color: :COBALT})
|
36
|
+
Nyle.draw_text(320, 270, "Nyle", {size: 40, color: :COBALT})
|
37
|
+
Nyle.draw_text(440, 270, "Nyle", {size: 48, color: :COBALT})
|
38
|
+
|
39
|
+
Nyle.draw_text( 80, 320, "Nyle", {size: 16, color: :GOLD})
|
40
|
+
Nyle.draw_text(140, 320, "Nyle", {size: 24, color: :GOLD})
|
41
|
+
Nyle.draw_text(220, 320, "Nyle", {size: 32, color: :GOLD})
|
42
|
+
Nyle.draw_text(320, 320, "Nyle", {size: 40, color: :GOLD})
|
43
|
+
Nyle.draw_text(440, 320, "Nyle", {size: 48, color: :GOLD})
|
44
|
+
|
45
|
+
Nyle.draw_text( 80, 390, "minimal graphics framework", {size: 24, a: 0.8})
|
46
|
+
Nyle.draw_text(110, 420, "using Ruby/GTK3 and rcairo", {size: 24, a: 0.8})
|
47
|
+
|
48
|
+
Nyle.quit if Nyle.key_press?(KEY_Escape)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
Screen.new.show_all
|
54
|
+
Gtk.main
|
55
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'nyle'
|
2
|
+
|
3
|
+
class Screen < Nyle::Screen
|
4
|
+
def initialize
|
5
|
+
super(480, 320, {bgcolor: :YELLOW_GREEN})
|
6
|
+
@image = Nyle.load_image("../image/n_c_mogura.png")
|
7
|
+
calc_xy
|
8
|
+
end
|
9
|
+
|
10
|
+
def draw
|
11
|
+
Nyle.draw_image(@x, @y, @image)
|
12
|
+
calc_xy if clicked?
|
13
|
+
Nyle.quit if Nyle.key_press?(KEY_Escape)
|
14
|
+
end
|
15
|
+
|
16
|
+
def calc_xy
|
17
|
+
@x = rand(Nyle.screen_width - @image.width)
|
18
|
+
@y = rand(Nyle.screen_height - @image.height)
|
19
|
+
end
|
20
|
+
|
21
|
+
def clicked?
|
22
|
+
Nyle.mouse_press?(MOUSE_L) and
|
23
|
+
Nyle.mouse_x >= @x and
|
24
|
+
Nyle.mouse_x <= @x + @image.width and
|
25
|
+
Nyle.mouse_y >= @y and
|
26
|
+
Nyle.mouse_y <= @y + @image.height
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
Screen.new.show_all
|
32
|
+
Gtk.main
|
33
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'nyle'
|
2
|
+
|
3
|
+
class Screen < Nyle::Screen
|
4
|
+
def initialize
|
5
|
+
super
|
6
|
+
@image1 = Nyle.load_image("../image/n_b_crocodile.png")
|
7
|
+
@th = 0
|
8
|
+
end
|
9
|
+
|
10
|
+
def draw
|
11
|
+
# image
|
12
|
+
if Nyle.mouse_press?(MOUSE_L) or Nyle.key_press?(KEY_Left)
|
13
|
+
@th += Math::PI / 2
|
14
|
+
@th = 0 if @th >= Math::PI * 2
|
15
|
+
end
|
16
|
+
if Nyle.mouse_press?(MOUSE_R) or Nyle.key_press?(KEY_Right)
|
17
|
+
@th -= Math::PI / 2
|
18
|
+
@th = 0 if @th <= -Math::PI * 2
|
19
|
+
end
|
20
|
+
|
21
|
+
Nyle.save do
|
22
|
+
Nyle.translate(320, 150)
|
23
|
+
Nyle.rotate(@th)
|
24
|
+
Nyle.draw_image(0, 0, @image1, {pos: :CORNER})
|
25
|
+
Nyle.draw_circle(0, 0, 2, {color: :RED, fill: true})
|
26
|
+
end
|
27
|
+
|
28
|
+
Nyle.save do
|
29
|
+
Nyle.translate(320, 350)
|
30
|
+
Nyle.rotate(@th)
|
31
|
+
Nyle.draw_image(0, 0, @image1, {pos: :CENTER})
|
32
|
+
Nyle.draw_circle(0, 0, 2, {color: :RED, fill: true})
|
33
|
+
end
|
34
|
+
|
35
|
+
Nyle.quit if Nyle.key_press?(KEY_Escape)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
Screen.new.show_all
|
41
|
+
Gtk.main
|
42
|
+
|
@@ -1,6 +1,7 @@
|
|
1
|
-
|
2
1
|
require 'nyle'
|
3
2
|
|
3
|
+
# Images: (c)2016 NISHIDA Ryota - http://dev.eyln.com (zlib License)
|
4
|
+
|
4
5
|
class Character
|
5
6
|
def initialize(x, y, tiles)
|
6
7
|
@x = x
|
@@ -23,8 +24,8 @@ class Character
|
|
23
24
|
@tx += 1 # animation to walk
|
24
25
|
@tx = 0 if @tx > 2 # range = (0..2)
|
25
26
|
|
26
|
-
@x += dx
|
27
|
-
@y += dy
|
27
|
+
@x += (dx * 2) # drawing position(x)
|
28
|
+
@y += (dy * 2) # drawing position(y)
|
28
29
|
|
29
30
|
@x = -@tiles[0][0].width if @x > Nyle.screen_width # right end
|
30
31
|
@x = Nyle.screen_width if @x < -@tiles[0][0].width # left end
|
@@ -36,17 +37,18 @@ end
|
|
36
37
|
class Screen < Nyle::Screen
|
37
38
|
def initialize
|
38
39
|
super(510, 390)
|
39
|
-
@image = Nyle.load_image("./image/n_i_bg.jpg", {sx: 0.5, sy: 0.5})
|
40
|
-
@image_half_right = Nyle.load_image("./image/n_i_bg.jpg", {sx: 0.5, sy: 0.5, cx: 320, cy: 0, cw: 320, ch: 480})
|
41
|
-
@image_half_low = Nyle.load_image("./image/n_i_bg.jpg", {sx: 0.5, sy: 0.5, cx: 0, cy: 240, cw: 640, ch: 240})
|
42
|
-
@image_quarter = Nyle.load_image("./image/n_i_bg.jpg", {sx: 0.5, sy: 0.5, cx: 320, cy: 240, cw: 320, ch: 240})
|
43
40
|
|
44
|
-
@
|
45
|
-
@
|
46
|
-
@
|
47
|
-
@
|
41
|
+
@image = Nyle.load_image("../image/n_i_bg.jpg", {sx: 0.5, sy: 0.5})
|
42
|
+
@image_half_right = Nyle.load_image("../image/n_i_bg.jpg", {sx: 0.5, sy: 0.5, cx: 320, cy: 0, cw: 320, ch: 480})
|
43
|
+
@image_half_low = Nyle.load_image("../image/n_i_bg.jpg", {sx: 0.5, sy: 0.5, cx: 0, cy: 240, cw: 640, ch: 240})
|
44
|
+
@image_quarter = Nyle.load_image("../image/n_i_bg.jpg", {sx: 0.5, sy: 0.5, cx: 320, cy: 240, cw: 320, ch: 240})
|
45
|
+
|
46
|
+
@tiles01 = Nyle.load_image_tiles("../image/n_i_chara.png", 1, 1) # itself
|
47
|
+
@tiles03 = Nyle.load_image_tiles("../image/n_i_chara.png", 3, 1) # divide into 3 pieces horizontally
|
48
|
+
@tiles04 = Nyle.load_image_tiles("../image/n_i_chara.png", 1, 4) # divide into 4 pieces vertically
|
49
|
+
@tiles12 = Nyle.load_image_tiles("../image/n_i_chara.png", 3, 4) # divide into 12 pieces vertically and horizontally
|
48
50
|
|
49
|
-
@tiles_player = Nyle.load_image_tiles("
|
51
|
+
@tiles_player = Nyle.load_image_tiles("../image/n_i_chara.png", 3, 4, {sx: 1.25, sy: 1.25}) # divide into 12 pieces and enlarge
|
50
52
|
@character = Character.new(140, 150, @tiles_player)
|
51
53
|
end
|
52
54
|
|
@@ -86,9 +88,7 @@ class Screen < Nyle::Screen
|
|
86
88
|
end
|
87
89
|
|
88
90
|
def update
|
89
|
-
|
90
|
-
dy = (Nyle.key_down?(KEY_Down) ? 1 : (Nyle.key_down?(KEY_Up) ? -1 : 0))
|
91
|
-
@character.move(dx, dy)
|
91
|
+
@character.move(Nyle.cursor_x, Nyle.cursor_y)
|
92
92
|
end
|
93
93
|
end
|
94
94
|
|