dxruby_sdl 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- Zjg0ZTM4M2RhNDdlMjkxMzBkYjE5N2IwMDZkNTM3ODNkYmVkODAwYg==
5
- data.tar.gz: !binary |-
6
- MWQ1MDA3ZjMwZWE4NzFjMmJjZTdlMDFhMTcxNjk1ZDI4MWVlZTM2Nw==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- NjNmNzNjM2FhY2RiZjI1NmMxYjMyYWE2ODc3MTM3YmEwNThjYTZhMGQ0ZWMw
10
- ODc0ZGEwOWI3M2QyNGFhMGU5ZmZlYmM3YWRjNGU1M2E3NDg4YjQyMjY2ZmI5
11
- YWYyMDVhMjVkOWRiOTNhYjUyMzY1YjVhYzUwMTA3Y2JmNTE2ZDQ=
12
- data.tar.gz: !binary |-
13
- MzI1NGZkMzAyM2JkYzViZjI3YzJkNjNjNTA1NTlhNjc2NWE5YjQ4NTk2M2Rm
14
- N2M4ODUxMWM4NDViN2E3NWMxZTMzZGNhZjI3YzE2MDFjZmFlY2JmYTQ3OWIw
15
- YTkzNDc5NzJlN2U2YTY1NTdiMzgwN2FhZGM4YzQ1NTAwZTIwYjQ=
2
+ SHA1:
3
+ metadata.gz: 139c626106c76fc47012a4f1770e9f9c4ee89ad9
4
+ data.tar.gz: 1daf8ade7133805c367c931a5ce68fb2ad77bbc5
5
+ SHA512:
6
+ metadata.gz: d6c6a7ead348da242f06fbab68ba60ca68a5057ac2e59ae281b933d3b59f8887a415286bdb73f4b00ada9c27b711207aa2835f619e9a3f05dd511216d5c23e8e
7
+ data.tar.gz: 75936a49d94f56dcb39b17fc0eee68244009a62c6c01671ea3cae5c4f8b57cf7833c3fa7c74748c67174cb36e9808ae134849eb896fbda41b1f9160c6d8960fd
@@ -61,23 +61,38 @@ module DXRubySDL
61
61
  end
62
62
 
63
63
  def update(sprites)
64
- sprites.flatten.each do |s|
65
- if s.respond_to?(:update)
66
- s.update
64
+ [sprites].flatten.each do |s|
65
+ if !s.respond_to?(:vanished?) or !s.vanished?
66
+ if s.respond_to?(:update)
67
+ s.update
68
+ end
67
69
  end
68
70
  end
69
71
  end
70
72
 
71
73
  def draw(sprites)
72
- sprites.flatten.each do |s|
73
- if s.respond_to?(:draw)
74
- s.draw
74
+ [sprites].flatten.each do |s|
75
+ if !s.respond_to?(:vanished?) or !s.vanished?
76
+ if s.respond_to?(:draw)
77
+ s.draw
78
+ end
75
79
  end
76
80
  end
77
81
  end
78
82
 
79
83
  def clean(sprites)
80
- return [sprites].flatten.compact.reject(&:vanished?)
84
+ sprites.size.times do |i|
85
+ s = sprites[i]
86
+ if s.kind_of?(Array)
87
+ clean(s)
88
+ else
89
+ if s.respond_to?(:vanished?)
90
+ sprites[i] = nil if s.vanished?
91
+ end
92
+ end
93
+ end
94
+ sprites.compact!
95
+ nil
81
96
  end
82
97
  end
83
98
 
@@ -134,21 +149,22 @@ module DXRubySDL
134
149
  return false
135
150
  end
136
151
  if @collision_enable && @collision
137
- x, y, width, height =
138
- @collision[0] + @x, @collision[1] + @y, @collision[2], @collision[3]
152
+ x1, y1, x2, y2 =
153
+ @collision[0] + @x, @collision[1] + @y, @collision[2] + @x, @collision[3] + @y
139
154
  else
140
- x, y, width, height =
141
- @x, @y, @image.width, @image.height
155
+ x1, y1, x2, y2 =
156
+ @x, @y, @image.width + @x - 1, @image.height + @y - 1
142
157
  end
143
158
  if other.collision_enable && other.collision
144
- other_x, other_y, other_width, other_height =
145
- other.collision
159
+ other_x1, other_y1, other_x2, other_y2 =
160
+ other.collision[0] + other.x, other.collision[1] + other.y,
161
+ other.collision[2] + other.x, other.collision[3] + other.y
146
162
  else
147
- other_x, other_y, other_width, other_height =
148
- other.x, other.y, other.image.width, other.image.height
163
+ other_x1, other_y1, other_x2, other_y2 =
164
+ other.x, other.y, other.image.width + other.x - 1, other.image.height + other.y - 1
149
165
  end
150
- return other_x + other_width > x && other_x < x + width &&
151
- other_y + other_height > y && other_y < y + height
166
+ return other_x2 >= x1 && other_x1 <= x2 &&
167
+ other_y2 >= y1 && other_y1 <= y2
152
168
  end
153
169
 
154
170
  def check(sprites)
@@ -1,5 +1,5 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  module DXRubySDL
4
- VERSION = '0.0.11'
4
+ VERSION = '0.0.12'
5
5
  end
@@ -311,7 +311,10 @@ describe DXRubySDL::Sprite, 'ゲームのキャラを扱う場合の基本とな
311
311
  describe '.clean',
312
312
  '配列内のすべてのオブジェクトのvanished?メソッドを呼び出し、' \
313
313
  'trueが返ってきた要素と、もともとnilだった要素を削除する' do
314
- subject { described_class.clean(ary) }
314
+ subject {
315
+ described_class.clean(ary)
316
+ ary
317
+ }
315
318
 
316
319
  shared_examples 'vanished?メソッドを呼び出す' do
317
320
  it '配列内のすべてのオブジェクトのvanished?メソッドを呼び出す' do
@@ -322,79 +325,59 @@ describe DXRubySDL::Sprite, 'ゲームのキャラを扱う場合の基本とな
322
325
  end
323
326
  end
324
327
 
325
- shared_context '.clean' do
326
- context 'すべてのvanished?がtrueを返す場合' do
327
- def make_sprite(i)
328
- s = double('Sprite')
328
+ shared_context 'vanished_true', vanished_true: true do
329
+ def make_sprite(i)
330
+ s = double('Sprite', index: i)
331
+ allow(s).to receive(:vanished?).and_return(true)
332
+ return s
333
+ end
334
+ end
335
+
336
+ shared_context 'some_item_vanished', some_item_vanished: true do
337
+ def make_sprite(i)
338
+ s = double('Sprite', index: i)
339
+ if i.even?
329
340
  allow(s).to receive(:vanished?).and_return(true)
330
- return s
341
+ else
342
+ allow(s).to receive(:vanished?).and_return(false)
331
343
  end
332
-
333
- include_examples 'vanished?メソッドを呼び出す'
334
- it { should be_empty }
344
+ return s
335
345
  end
346
+ end
336
347
 
337
- context '一部のvanished?がtrueを返す場合' do
338
- def make_sprite(i)
339
- s = double('Sprite')
340
- if i.even?
341
- allow(s).to receive(:vanished?).and_return(true)
342
- else
343
- allow(s).to receive(:vanished?).and_return(false)
344
- end
348
+ shared_context 'vanished_false_or_nil', vanished_false_or_nil: true do
349
+ def make_sprite(i)
350
+ if i.even?
351
+ s = double('Sprite', index: i)
352
+ allow(s).to receive(:vanished?).and_return(false)
345
353
  return s
346
- end
347
-
348
- include_examples 'vanished?メソッドを呼び出す'
349
-
350
- it 'vanished?がtrueのものが取り除かれた配列を返す' do
351
- should eq(ary.flatten.reject(&:vanished?))
354
+ else
355
+ return nil
352
356
  end
353
357
  end
354
358
 
355
- context '一部がnil、それ以外のvanished?がfalseを返す場合' do
356
- def make_sprite(i)
357
- if i.even?
358
- s = double('Sprite')
359
- allow(s).to receive(:vanished?).and_return(false)
360
- return s
361
- else
362
- return nil
363
- end
364
- end
365
-
366
- it '配列内のnilではないオブジェクトのvanished?メソッドを呼び出す' do
367
- expect {
368
- subject
369
- }.not_to raise_error
359
+ it '配列内のnilではないオブジェクトのvanished?メソッドを呼び出す' do
360
+ expect {
361
+ subject
362
+ }.not_to raise_error
370
363
 
371
- ary.flatten.each do |s|
372
- if !s.nil?
373
- expect(s).to have_received(:vanished?).once
374
- end
364
+ ary.flatten.each do |s|
365
+ if !s.nil?
366
+ expect(s).to have_received(:vanished?).once
375
367
  end
376
368
  end
377
-
378
- it 'nilのものが取り除かれた配列を返す' do
379
- should eq(ary.flatten.reject(&:nil?))
380
- end
381
369
  end
370
+ end
382
371
 
383
- context 'すべてのvanished?がfalseを返す場合' do
384
- def make_sprite(i)
385
- s = double('Sprite')
386
- allow(s).to receive(:vanished?).and_return(false)
387
- return s
388
- end
389
-
390
- include_examples 'vanished?メソッドを呼び出す'
391
-
392
- it 'なにも取り除かずにフラットにした配列を返す' do
393
- should eq(ary.flatten)
394
- end
372
+ shared_context 'vanished_false', vanished_false: true do
373
+ def make_sprite(i)
374
+ s = double('Sprite', index: i)
375
+ allow(s).to receive(:vanished?).and_return(false)
376
+ return s
395
377
  end
396
378
  end
397
379
 
380
+
398
381
  context '引数がネストしていない配列の場合' do
399
382
  let(:ary) {
400
383
  5.times.map { |i|
@@ -402,7 +385,34 @@ describe DXRubySDL::Sprite, 'ゲームのキャラを扱う場合の基本とな
402
385
  }
403
386
  }
404
387
 
405
- include_context '.clean'
388
+ context 'すべてのvanished?がtrueを返す場合', vanished_true: true do
389
+ include_examples 'vanished?メソッドを呼び出す'
390
+
391
+ it { should be_empty }
392
+ end
393
+
394
+ context '一部のvanished?がtrueを返す場合', some_item_vanished: true do
395
+ include_examples 'vanished?メソッドを呼び出す'
396
+
397
+ it 'vanished?がtrueのものが取り除かれた配列を返す' do
398
+ expect(subject.map(&:index)).to eq([1, 3])
399
+ end
400
+ end
401
+
402
+ context '一部がnil、それ以外のvanished?がfalseを返す場合',
403
+ vanished_false_or_nil: true do
404
+ it 'nilのものが取り除かれた配列を返す' do
405
+ expect(subject.map(&:index)).to eq([0, 2, 4])
406
+ end
407
+ end
408
+
409
+ context 'すべてのvanished?がfalseを返す場合', vanished_false: true do
410
+ include_examples 'vanished?メソッドを呼び出す'
411
+
412
+ it 'なにも取り除かない' do
413
+ expect(subject.map(&:index)).to eq([0, 1, 2, 3, 4])
414
+ end
415
+ end
406
416
  end
407
417
 
408
418
  context '引数がネストした配列の場合' do
@@ -414,7 +424,37 @@ describe DXRubySDL::Sprite, 'ゲームのキャラを扱う場合の基本とな
414
424
  }
415
425
  }
416
426
 
417
- include_context '.clean'
427
+ context 'すべてのvanished?がtrueを返す場合', vanished_true: true do
428
+ include_examples 'vanished?メソッドを呼び出す'
429
+
430
+ it { expect(subject).to eq(Array.new(5) { [] }) }
431
+ end
432
+
433
+ context '一部のvanished?がtrueを返す場合', some_item_vanished: true do
434
+ include_examples 'vanished?メソッドを呼び出す'
435
+
436
+ it 'vanished?がtrueのものが取り除かれた配列を返す' do
437
+ expect(subject.map { |i| i.map(&:index) })
438
+ .to eq(Array.new(5) { [1, 3] })
439
+ end
440
+ end
441
+
442
+ context '一部がnil、それ以外のvanished?がfalseを返す場合',
443
+ vanished_false_or_nil: true do
444
+ it 'nilのものが取り除かれた配列を返す' do
445
+ expect(subject.map { |i| i.map(&:index) })
446
+ .to eq(Array.new(5) { [0, 2, 4] })
447
+ end
448
+ end
449
+
450
+ context 'すべてのvanished?がfalseを返す場合', vanished_false: true do
451
+ include_examples 'vanished?メソッドを呼び出す'
452
+
453
+ it 'なにも取り除かない' do
454
+ expect(subject.map { |i| i.map(&:index) })
455
+ .to eq(Array.new(5) { [0, 1, 2, 3, 4] })
456
+ end
457
+ end
418
458
  end
419
459
  end
420
460
 
metadata CHANGED
@@ -1,83 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dxruby_sdl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouji Takao
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-15 00:00:00.000000000 Z
11
+ date: 2015-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '2.14'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.14'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: coveralls
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: travis-lint
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ! '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
@@ -98,71 +98,71 @@ dependencies:
98
98
  name: guard-rspec
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ! '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ! '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: guard-rubocop
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ! '>='
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ! '>='
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rubysdl
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ~>
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
131
  version: 2.1.3
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ~>
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 2.1.3
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: rsdl
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ! '>='
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ! '>='
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
- description: ! '`dxruby-sdl` is a ruby library for 2D graphics and game. It has same
154
- DXRuby API. It use SDL/Ruby.'
153
+ description: "`dxruby-sdl` is a ruby library for 2D graphics and game. It has same
154
+ DXRuby API. It use SDL/Ruby."
155
155
  email:
156
156
  - kouji.takao@gmail.com
157
157
  executables: []
158
158
  extensions: []
159
159
  extra_rdoc_files: []
160
160
  files:
161
- - .gitignore
162
- - .rspec
163
- - .rubocop.yml
164
- - .ruby-version
165
- - .travis.yml
161
+ - ".gitignore"
162
+ - ".rspec"
163
+ - ".rubocop.yml"
164
+ - ".ruby-version"
165
+ - ".travis.yml"
166
166
  - Gemfile
167
167
  - Guardfile
168
168
  - LEGAL
@@ -225,17 +225,17 @@ require_paths:
225
225
  - lib
226
226
  required_ruby_version: !ruby/object:Gem::Requirement
227
227
  requirements:
228
- - - ! '>='
228
+ - - ">="
229
229
  - !ruby/object:Gem::Version
230
230
  version: '0'
231
231
  required_rubygems_version: !ruby/object:Gem::Requirement
232
232
  requirements:
233
- - - ! '>='
233
+ - - ">="
234
234
  - !ruby/object:Gem::Version
235
235
  version: '0'
236
236
  requirements: []
237
237
  rubyforge_project:
238
- rubygems_version: 2.0.7
238
+ rubygems_version: 2.2.2
239
239
  signing_key:
240
240
  specification_version: 4
241
241
  summary: 2D graphics and game library
@@ -257,3 +257,4 @@ test_files:
257
257
  - spec/lib/dxruby_spec.rb
258
258
  - spec/spec_helper.rb
259
259
  - spec/support/fixture_helper.rb
260
+ has_rdoc: