dxruby_sdl 0.0.11 → 0.0.12

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 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: