dxruby_sdl 0.0.2 → 0.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 +8 -8
- data/lib/dxruby_sdl/image.rb +22 -1
- data/lib/dxruby_sdl/input.rb +27 -0
- data/lib/dxruby_sdl/version.rb +1 -1
- data/lib/dxruby_sdl/window.rb +8 -0
- data/samples/kadai1.rb +23 -0
- data/samples/kadai2.rb +35 -0
- data/samples/kadai3.rb +49 -0
- data/spec/dxruby_sdl/image_spec.rb +36 -0
- data/spec/dxruby_sdl/input_spec.rb +271 -0
- data/spec/dxruby_sdl/window_spec.rb +16 -0
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZjNjNDE4NTRhMjM3MjQ3YjZmNDQ3YjBhZTNlNGNmNzUyMDNlMzM0ZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ODkyNjFjMjgwMGQwOTU0NmNiOTljOTFmYTAxOTI0NmVjMGY1MDUzZA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NTY5MjMyYWI3YTRiNDVmMTdkZjZkMzI0YjljYmY5NWUxNTQ3M2JiNDEyNWQ3
|
10
|
+
ZDE1MGEzNzQzOGNhODFhNjQ5MTk0MTE4NTIzYzkzZDQ0NWFjMDlkNWU3Njdl
|
11
|
+
M2VkZmVlOGUyZWEwMTgyYzA2MDZlODFlMjlhMzAxZDc2N2E0ZmQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZWM3ZWQ1MWM4ZTE2MjM1ZGFjMzJmOThkMmRjZDMyODRhMTlmZDhlOTk0ZmNm
|
14
|
+
MTYxZmQ2Y2UxMjY3OWQ2YjFiOGNmYTEyZDUwMmI4YWNjNDZkYmEyMGJjZjk1
|
15
|
+
M2Q2NDI0NmY2NjdkMDQ5MGMxYmY2YmE4YzkwYzY3YTUxNWIxZGY=
|
data/lib/dxruby_sdl/image.rb
CHANGED
@@ -70,13 +70,32 @@ module DXRubySDL
|
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
73
|
+
def circle_fill(x, y, r, color)
|
74
|
+
lock do
|
75
|
+
@_surface.draw_circle(x, y, r, to_sdl_color(color), true, false,
|
76
|
+
to_sdl_alpha(color))
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
73
80
|
def box(x1, y1, x2, y2, color)
|
74
81
|
x = x1 < x2 ? x1 : x2
|
75
82
|
w = (x2 - x1).abs
|
76
83
|
y = y1 < y2 ? y1 : y2
|
77
84
|
h = (y2 - y1).abs
|
78
85
|
lock do
|
79
|
-
@_surface.draw_rect(x, y, w, h, to_sdl_color(color)
|
86
|
+
@_surface.draw_rect(x, y, w, h, to_sdl_color(color), false,
|
87
|
+
to_sdl_alpha(color))
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def box_fill(x1, y1, x2, y2, color)
|
92
|
+
x = x1 < x2 ? x1 : x2
|
93
|
+
w = (x2 - x1).abs
|
94
|
+
y = y1 < y2 ? y1 : y2
|
95
|
+
h = (y2 - y1).abs
|
96
|
+
lock do
|
97
|
+
@_surface.draw_rect(x, y, w, h, to_sdl_color(color), true,
|
98
|
+
to_sdl_alpha(color))
|
80
99
|
end
|
81
100
|
end
|
82
101
|
|
@@ -86,6 +105,8 @@ module DXRubySDL
|
|
86
105
|
alias_method :load_to_array, :load_tiles
|
87
106
|
alias_method :loadToArray, :load_to_array
|
88
107
|
end
|
108
|
+
alias_method :circleFill, :circle_fill
|
109
|
+
alias_method :boxFill, :box_fill
|
89
110
|
# rubocop:enable SymbolName
|
90
111
|
|
91
112
|
private
|
data/lib/dxruby_sdl/input.rb
CHANGED
@@ -48,12 +48,39 @@ module DXRubySDL
|
|
48
48
|
return key_press?(to_sdl_key(key_code))
|
49
49
|
end
|
50
50
|
|
51
|
+
def mouse_down?(button)
|
52
|
+
case button
|
53
|
+
when M_LBUTTON
|
54
|
+
index = 2
|
55
|
+
when M_MBUTTON
|
56
|
+
index = 3
|
57
|
+
when M_RBUTTON
|
58
|
+
index = 4
|
59
|
+
end
|
60
|
+
return SDL::Mouse.state[index]
|
61
|
+
end
|
62
|
+
|
63
|
+
def mouse_push?(button)
|
64
|
+
case button
|
65
|
+
when M_LBUTTON
|
66
|
+
index = 2
|
67
|
+
when M_MBUTTON
|
68
|
+
index = 3
|
69
|
+
when M_RBUTTON
|
70
|
+
index = 4
|
71
|
+
end
|
72
|
+
return SDL::Mouse.state[index] &&
|
73
|
+
!Window.instance_variable_get('@last_mouse_state')[index]
|
74
|
+
end
|
75
|
+
|
51
76
|
# rubocop:disable SymbolName
|
52
77
|
class << self
|
53
78
|
alias_method :padDown?, :pad_down?
|
54
79
|
alias_method :mousePosX, :mouse_pos_x
|
55
80
|
alias_method :mousePosY, :mouse_pos_y
|
56
81
|
alias_method :keyPush?, :key_push?
|
82
|
+
alias_method :mouseDown?, :mouse_down?
|
83
|
+
alias_method :mousePush?, :mouse_push?
|
57
84
|
end
|
58
85
|
# rubocop:enable SymbolName
|
59
86
|
|
data/lib/dxruby_sdl/version.rb
CHANGED
data/lib/dxruby_sdl/window.rb
CHANGED
@@ -4,6 +4,8 @@ require 'dxruby_sdl/window/fpstimer'
|
|
4
4
|
|
5
5
|
module DXRubySDL
|
6
6
|
module Window
|
7
|
+
@last_mouse_state = [false, false, false]
|
8
|
+
|
7
9
|
module_function
|
8
10
|
|
9
11
|
def _screen
|
@@ -13,6 +15,10 @@ module DXRubySDL
|
|
13
15
|
SDL::SWSURFACE)
|
14
16
|
end
|
15
17
|
|
18
|
+
def fps=(val)
|
19
|
+
FPSTimer.instance.fps = val
|
20
|
+
end
|
21
|
+
|
16
22
|
def loop(&block)
|
17
23
|
timer = FPSTimer.instance
|
18
24
|
timer.reset
|
@@ -32,6 +38,8 @@ module DXRubySDL
|
|
32
38
|
yield
|
33
39
|
|
34
40
|
_screen.update_rect(0, 0, 0, 0)
|
41
|
+
|
42
|
+
@last_mouse_state = SDL::Mouse.state
|
35
43
|
end
|
36
44
|
end
|
37
45
|
end
|
data/samples/kadai1.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'dxruby'
|
3
|
+
|
4
|
+
i = Image.new(640, 480)
|
5
|
+
i.boxFill(50, 50, 350, 200, [255, 0, 0])
|
6
|
+
i.circle(50, 50, 10, [0, 255, 0])
|
7
|
+
i.circle(350, 50, 10, [0, 255, 0])
|
8
|
+
i.circle(50, 200, 10, [0, 255, 0])
|
9
|
+
i.circle(350, 200, 10, [0, 255, 0])
|
10
|
+
|
11
|
+
font = Font.new(50, 'MS Gothic')
|
12
|
+
|
13
|
+
Window.loop do
|
14
|
+
Window.draw(0, 0, i)
|
15
|
+
|
16
|
+
t = Time.now
|
17
|
+
if t.sec.even?
|
18
|
+
s = t.strftime('%H:%M:%S')
|
19
|
+
else
|
20
|
+
s = t.strftime('%H %M %S')
|
21
|
+
end
|
22
|
+
Window.drawFont(100, 100, s, font)
|
23
|
+
end
|
data/samples/kadai2.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'dxruby'
|
3
|
+
|
4
|
+
c = 255
|
5
|
+
r = 1
|
6
|
+
|
7
|
+
font = Font.new(32)
|
8
|
+
i = Image.new(640, 480)
|
9
|
+
|
10
|
+
Window.loop do
|
11
|
+
c -= Input.x
|
12
|
+
if c > 255
|
13
|
+
c = 255
|
14
|
+
end
|
15
|
+
if c < 0
|
16
|
+
c = 0
|
17
|
+
end
|
18
|
+
|
19
|
+
r -= Input.y
|
20
|
+
if r > 20
|
21
|
+
r = 20
|
22
|
+
end
|
23
|
+
if r < 1
|
24
|
+
r = 1
|
25
|
+
end
|
26
|
+
|
27
|
+
Window.drawFont(0, 0, "C:#{c} R:#{r}", font)
|
28
|
+
|
29
|
+
if Input.mouseDown?(M_LBUTTON)
|
30
|
+
x = Input.mousePosX
|
31
|
+
y = Input.mousePosY
|
32
|
+
i.circleFill(x, y, r, [c, c, c])
|
33
|
+
end
|
34
|
+
Window.draw(0, 0, i)
|
35
|
+
end
|
data/samples/kadai3.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'dxruby'
|
3
|
+
|
4
|
+
f = ['7', '@', 'G', '!', '*']
|
5
|
+
no1_f = f.sort_by { rand }
|
6
|
+
no2_f = f.sort_by { rand }
|
7
|
+
no3_f = f.sort_by { rand }
|
8
|
+
|
9
|
+
i = 0
|
10
|
+
no1 = no1_f[i]
|
11
|
+
no2 = no2_f[i]
|
12
|
+
no3 = no3_f[i]
|
13
|
+
|
14
|
+
no1_s = false
|
15
|
+
no2_s = false
|
16
|
+
no3_s = false
|
17
|
+
font = Font.new(64, 'MS Gothic')
|
18
|
+
Window.fps = 15
|
19
|
+
Window.loop do
|
20
|
+
Window.drawFont(20, 10, "#{no1} #{no2} #{no3}", font)
|
21
|
+
if Input.mousePush?(M_LBUTTON)
|
22
|
+
if !no1_s
|
23
|
+
no1_s = true
|
24
|
+
elsif !no2_s
|
25
|
+
no2_s = true
|
26
|
+
elsif !no3_s
|
27
|
+
no3_s = true
|
28
|
+
end
|
29
|
+
end
|
30
|
+
i += 1
|
31
|
+
if i >= f.length
|
32
|
+
i = 0
|
33
|
+
end
|
34
|
+
if !no1_s
|
35
|
+
no1 = no1_f[i]
|
36
|
+
end
|
37
|
+
if !no2_s
|
38
|
+
no2 = no2_f[i]
|
39
|
+
end
|
40
|
+
if no3_s
|
41
|
+
if no1 == no2 && no1 == no3
|
42
|
+
Window.drawFont(120, 100, 'Good!!', font)
|
43
|
+
else
|
44
|
+
Window.drawFont(120, 100, 'Bad.', font)
|
45
|
+
end
|
46
|
+
else
|
47
|
+
no3 = no3_f[i]
|
48
|
+
end
|
49
|
+
end
|
@@ -149,9 +149,45 @@ describe DXRubySDL::Image, '画像を表すクラス' do
|
|
149
149
|
include_context 'draw methods'
|
150
150
|
end
|
151
151
|
|
152
|
+
shared_context '#circle_fill' do
|
153
|
+
include_context 'draw methods'
|
154
|
+
end
|
155
|
+
|
156
|
+
describe '#circle_fill' do
|
157
|
+
subject { image.circle_fill(50, 50, 25, [255, 255, 255]) }
|
158
|
+
|
159
|
+
include_context '#circle_fill'
|
160
|
+
|
161
|
+
describe 'alias' do
|
162
|
+
describe '#circleFill' do
|
163
|
+
it_behaves_like '#circle_fill' do
|
164
|
+
subject { image.circleFill(50, 50, 25, [255, 255, 255]) }
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
152
170
|
describe '#box' do
|
153
171
|
subject { image.box(0, 0, 100, 100, [255, 255, 255]) }
|
154
172
|
|
155
173
|
include_context 'draw methods'
|
156
174
|
end
|
175
|
+
|
176
|
+
shared_context '#box_fill' do
|
177
|
+
include_context 'draw methods'
|
178
|
+
end
|
179
|
+
|
180
|
+
describe '#box_fill' do
|
181
|
+
subject { image.box_fill(0, 0, 100, 100, [255, 255, 255]) }
|
182
|
+
|
183
|
+
include_context '#box_fill'
|
184
|
+
|
185
|
+
describe 'alias' do
|
186
|
+
describe '#boxFill' do
|
187
|
+
it_behaves_like '#box_fill' do
|
188
|
+
subject { image.boxFill(0, 0, 100, 100, [255, 255, 255]) }
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
157
193
|
end
|
@@ -227,4 +227,275 @@ describe DXRubySDL::Input,
|
|
227
227
|
end
|
228
228
|
end
|
229
229
|
end
|
230
|
+
|
231
|
+
shared_context '.mouse_down?' do
|
232
|
+
context 'マウスの左ボタンを押している場合' do
|
233
|
+
before do
|
234
|
+
allow(SDL::Mouse)
|
235
|
+
.to receive(:state).and_return([0, 0, true, false, false])
|
236
|
+
end
|
237
|
+
|
238
|
+
describe 'マウスの左ボタン(M_LBUTTON)を指定する' do
|
239
|
+
let(:button) { DXRubySDL::M_LBUTTON }
|
240
|
+
|
241
|
+
it { should be_true }
|
242
|
+
end
|
243
|
+
|
244
|
+
describe 'マウスの中ボタン(M_MBUTTON)を指定する' do
|
245
|
+
let(:button) { DXRubySDL::M_MBUTTON }
|
246
|
+
|
247
|
+
it { should be_false }
|
248
|
+
end
|
249
|
+
|
250
|
+
describe 'マウスの右ボタン(M_RBUTTON)を指定する' do
|
251
|
+
let(:button) { DXRubySDL::M_RBUTTON }
|
252
|
+
|
253
|
+
it { should be_false }
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
257
|
+
context 'マウスの中ボタンを押している場合' do
|
258
|
+
before do
|
259
|
+
allow(SDL::Mouse)
|
260
|
+
.to receive(:state).and_return([0, 0, false, true, false])
|
261
|
+
end
|
262
|
+
|
263
|
+
describe 'マウスの左ボタン(M_LBUTTON)を指定する' do
|
264
|
+
let(:button) { DXRubySDL::M_LBUTTON }
|
265
|
+
|
266
|
+
it { should be_false }
|
267
|
+
end
|
268
|
+
|
269
|
+
describe 'マウスの中ボタン(M_MBUTTON)を指定する' do
|
270
|
+
let(:button) { DXRubySDL::M_MBUTTON }
|
271
|
+
|
272
|
+
it { should be_true }
|
273
|
+
end
|
274
|
+
|
275
|
+
describe 'マウスの右ボタン(M_RBUTTON)を指定する' do
|
276
|
+
let(:button) { DXRubySDL::M_RBUTTON }
|
277
|
+
|
278
|
+
it { should be_false }
|
279
|
+
end
|
280
|
+
end
|
281
|
+
|
282
|
+
context 'マウスの右ボタンを押している場合' do
|
283
|
+
before do
|
284
|
+
allow(SDL::Mouse)
|
285
|
+
.to receive(:state).and_return([0, 0, false, false, true])
|
286
|
+
end
|
287
|
+
|
288
|
+
describe 'マウスの左ボタン(M_LBUTTON)を指定する' do
|
289
|
+
let(:button) { DXRubySDL::M_LBUTTON }
|
290
|
+
|
291
|
+
it { should be_false }
|
292
|
+
end
|
293
|
+
|
294
|
+
describe 'マウスの中ボタン(M_MBUTTON)を指定する' do
|
295
|
+
let(:button) { DXRubySDL::M_MBUTTON }
|
296
|
+
|
297
|
+
it { should be_false }
|
298
|
+
end
|
299
|
+
|
300
|
+
describe 'マウスの右ボタン(M_RBUTTON)を指定する' do
|
301
|
+
let(:button) { DXRubySDL::M_RBUTTON }
|
302
|
+
|
303
|
+
it { should be_true }
|
304
|
+
end
|
305
|
+
end
|
306
|
+
end
|
307
|
+
|
308
|
+
describe '.mouse_down?' do
|
309
|
+
subject { described_class.mouse_down?(button) }
|
310
|
+
|
311
|
+
include_context '.mouse_down?'
|
312
|
+
|
313
|
+
describe 'alias' do
|
314
|
+
describe '.mouseDown?' do
|
315
|
+
it_behaves_like '.mouse_down?' do
|
316
|
+
subject { described_class.mouseDown?(button) }
|
317
|
+
end
|
318
|
+
end
|
319
|
+
end
|
320
|
+
end
|
321
|
+
|
322
|
+
shared_context '.mouse_push?' do
|
323
|
+
context '直前にマウスのボタンを押していない場合' do
|
324
|
+
before do
|
325
|
+
DXRubySDL::Window.instance_variable_set('@last_mouse_state',
|
326
|
+
[0, 0, false, false, false])
|
327
|
+
end
|
328
|
+
|
329
|
+
context 'マウスの左ボタンを押している場合' do
|
330
|
+
before do
|
331
|
+
allow(SDL::Mouse)
|
332
|
+
.to receive(:state).and_return([0, 0, true, false, false])
|
333
|
+
end
|
334
|
+
|
335
|
+
describe 'マウスの左ボタン(M_LBUTTON)を指定する' do
|
336
|
+
let(:button) { DXRubySDL::M_LBUTTON }
|
337
|
+
|
338
|
+
it { should be_true }
|
339
|
+
end
|
340
|
+
|
341
|
+
describe 'マウスの中ボタン(M_MBUTTON)を指定する' do
|
342
|
+
let(:button) { DXRubySDL::M_MBUTTON }
|
343
|
+
|
344
|
+
it { should be_false }
|
345
|
+
end
|
346
|
+
|
347
|
+
describe 'マウスの右ボタン(M_RBUTTON)を指定する' do
|
348
|
+
let(:button) { DXRubySDL::M_RBUTTON }
|
349
|
+
|
350
|
+
it { should be_false }
|
351
|
+
end
|
352
|
+
end
|
353
|
+
|
354
|
+
context 'マウスの中ボタンを押している場合' do
|
355
|
+
before do
|
356
|
+
allow(SDL::Mouse)
|
357
|
+
.to receive(:state).and_return([0, 0, false, true, false])
|
358
|
+
end
|
359
|
+
|
360
|
+
describe 'マウスの左ボタン(M_LBUTTON)を指定する' do
|
361
|
+
let(:button) { DXRubySDL::M_LBUTTON }
|
362
|
+
|
363
|
+
it { should be_false }
|
364
|
+
end
|
365
|
+
|
366
|
+
describe 'マウスの中ボタン(M_MBUTTON)を指定する' do
|
367
|
+
let(:button) { DXRubySDL::M_MBUTTON }
|
368
|
+
|
369
|
+
it { should be_true }
|
370
|
+
end
|
371
|
+
|
372
|
+
describe 'マウスの右ボタン(M_RBUTTON)を指定する' do
|
373
|
+
let(:button) { DXRubySDL::M_RBUTTON }
|
374
|
+
|
375
|
+
it { should be_false }
|
376
|
+
end
|
377
|
+
end
|
378
|
+
|
379
|
+
context 'マウスの右ボタンを押している場合' do
|
380
|
+
before do
|
381
|
+
allow(SDL::Mouse)
|
382
|
+
.to receive(:state).and_return([0, 0, false, false, true])
|
383
|
+
end
|
384
|
+
|
385
|
+
describe 'マウスの左ボタン(M_LBUTTON)を指定する' do
|
386
|
+
let(:button) { DXRubySDL::M_LBUTTON }
|
387
|
+
|
388
|
+
it { should be_false }
|
389
|
+
end
|
390
|
+
|
391
|
+
describe 'マウスの中ボタン(M_MBUTTON)を指定する' do
|
392
|
+
let(:button) { DXRubySDL::M_MBUTTON }
|
393
|
+
|
394
|
+
it { should be_false }
|
395
|
+
end
|
396
|
+
|
397
|
+
describe 'マウスの右ボタン(M_RBUTTON)を指定する' do
|
398
|
+
let(:button) { DXRubySDL::M_RBUTTON }
|
399
|
+
|
400
|
+
it { should be_true }
|
401
|
+
end
|
402
|
+
end
|
403
|
+
end
|
404
|
+
|
405
|
+
context '直前にマウスのボタンを全て押していた場合' do
|
406
|
+
before do
|
407
|
+
DXRubySDL::Window.instance_variable_set('@last_mouse_state',
|
408
|
+
[0, 0, true, true, true])
|
409
|
+
end
|
410
|
+
|
411
|
+
context 'マウスの左ボタンを押している場合' do
|
412
|
+
before do
|
413
|
+
allow(SDL::Mouse)
|
414
|
+
.to receive(:state).and_return([0, 0, true, false, false])
|
415
|
+
end
|
416
|
+
|
417
|
+
describe 'マウスの左ボタン(M_LBUTTON)を指定する' do
|
418
|
+
let(:button) { DXRubySDL::M_LBUTTON }
|
419
|
+
|
420
|
+
it { should be_false }
|
421
|
+
end
|
422
|
+
|
423
|
+
describe 'マウスの中ボタン(M_MBUTTON)を指定する' do
|
424
|
+
let(:button) { DXRubySDL::M_MBUTTON }
|
425
|
+
|
426
|
+
it { should be_false }
|
427
|
+
end
|
428
|
+
|
429
|
+
describe 'マウスの右ボタン(M_RBUTTON)を指定する' do
|
430
|
+
let(:button) { DXRubySDL::M_RBUTTON }
|
431
|
+
|
432
|
+
it { should be_false }
|
433
|
+
end
|
434
|
+
end
|
435
|
+
|
436
|
+
context 'マウスの中ボタンを押している場合' do
|
437
|
+
before do
|
438
|
+
allow(SDL::Mouse)
|
439
|
+
.to receive(:state).and_return([0, 0, false, true, false])
|
440
|
+
end
|
441
|
+
|
442
|
+
describe 'マウスの左ボタン(M_LBUTTON)を指定する' do
|
443
|
+
let(:button) { DXRubySDL::M_LBUTTON }
|
444
|
+
|
445
|
+
it { should be_false }
|
446
|
+
end
|
447
|
+
|
448
|
+
describe 'マウスの中ボタン(M_MBUTTON)を指定する' do
|
449
|
+
let(:button) { DXRubySDL::M_MBUTTON }
|
450
|
+
|
451
|
+
it { should be_false }
|
452
|
+
end
|
453
|
+
|
454
|
+
describe 'マウスの右ボタン(M_RBUTTON)を指定する' do
|
455
|
+
let(:button) { DXRubySDL::M_RBUTTON }
|
456
|
+
|
457
|
+
it { should be_false }
|
458
|
+
end
|
459
|
+
end
|
460
|
+
|
461
|
+
context 'マウスの右ボタンを押している場合' do
|
462
|
+
before do
|
463
|
+
allow(SDL::Mouse)
|
464
|
+
.to receive(:state).and_return([0, 0, false, false, true])
|
465
|
+
end
|
466
|
+
|
467
|
+
describe 'マウスの左ボタン(M_LBUTTON)を指定する' do
|
468
|
+
let(:button) { DXRubySDL::M_LBUTTON }
|
469
|
+
|
470
|
+
it { should be_false }
|
471
|
+
end
|
472
|
+
|
473
|
+
describe 'マウスの中ボタン(M_MBUTTON)を指定する' do
|
474
|
+
let(:button) { DXRubySDL::M_MBUTTON }
|
475
|
+
|
476
|
+
it { should be_false }
|
477
|
+
end
|
478
|
+
|
479
|
+
describe 'マウスの右ボタン(M_RBUTTON)を指定する' do
|
480
|
+
let(:button) { DXRubySDL::M_RBUTTON }
|
481
|
+
|
482
|
+
it { should be_false }
|
483
|
+
end
|
484
|
+
end
|
485
|
+
end
|
486
|
+
end
|
487
|
+
|
488
|
+
describe '.mouse_push?' do
|
489
|
+
subject { described_class.mouse_push?(button) }
|
490
|
+
|
491
|
+
include_context '.mouse_push?'
|
492
|
+
|
493
|
+
describe 'alias' do
|
494
|
+
describe '.mousePush?' do
|
495
|
+
it_behaves_like '.mouse_push?' do
|
496
|
+
subject { described_class.mousePush?(button) }
|
497
|
+
end
|
498
|
+
end
|
499
|
+
end
|
500
|
+
end
|
230
501
|
end
|
@@ -26,6 +26,22 @@ describe DXRubySDL::Window do
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
+
describe '.fps=', 'FPSを設定する' do
|
30
|
+
context '15に設定した場合' do
|
31
|
+
let(:fps) { 15 }
|
32
|
+
|
33
|
+
before do
|
34
|
+
DXRubySDL::Window.fps = fps
|
35
|
+
end
|
36
|
+
|
37
|
+
describe 'DXRubySDL::Window::FPSTimer.instance' do
|
38
|
+
subject { DXRubySDL::Window::FPSTimer.instance }
|
39
|
+
|
40
|
+
its(:fps) { should eq(fps) }
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
29
45
|
shared_context '.draw_font' do
|
30
46
|
context 'サイズのみを設定したフォントを指定した場合' do
|
31
47
|
let!(:font) { DXRubySDL::Font.new(32) }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dxruby_sdl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kouji Takao
|
@@ -153,6 +153,9 @@ files:
|
|
153
153
|
- lib/dxruby_sdl/window/fpstimer.rb
|
154
154
|
- samples/bgm.mid
|
155
155
|
- samples/data.png
|
156
|
+
- samples/kadai1.rb
|
157
|
+
- samples/kadai2.rb
|
158
|
+
- samples/kadai3.rb
|
156
159
|
- samples/sound.wav
|
157
160
|
- samples/tutorial-2-01.rb
|
158
161
|
- samples/tutorial-2-02.rb
|