graphics 1.0.0b1 → 1.0.0b4
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.rdoc +30 -0
- data/Manifest.txt +39 -7
- data/README.rdoc +48 -4
- data/Rakefile +8 -2
- data/examples/boid.rb +9 -18
- data/examples/bounce.rb +15 -23
- data/examples/canvas.rb +75 -0
- data/examples/collision.rb +6 -6
- data/examples/demo.rb +5 -7
- data/examples/editor.rb +12 -9
- data/examples/fluid.rb +2 -3
- data/examples/fluid2.rb +1 -1
- data/examples/{lito2.rb → gol.rb} +0 -0
- data/examples/{zenspider4.rb → gol2.rb} +0 -0
- data/examples/logo.rb +4 -7
- data/examples/maze.rb +136 -0
- data/examples/tank.rb +10 -11
- data/examples/tank2.rb +12 -17
- data/examples/targeting.rb +1 -1
- data/examples/vants.rb +1 -1
- data/examples/walker.rb +3 -12
- data/examples/walker2.rb +197 -0
- data/examples/zombies.rb +31 -35
- data/ext/sdl/extconf.rb +31 -0
- data/ext/sdl/sdl.c +1067 -0
- data/ext/sdl/sge/INSTALL +72 -0
- data/ext/sdl/sge/LICENSE +504 -0
- data/ext/sdl/sge/Makefile +83 -0
- data/ext/sdl/sge/Makefile.conf +63 -0
- data/ext/sdl/sge/README +219 -0
- data/ext/sdl/sge/Todo +7 -0
- data/ext/sdl/sge/WhatsNew +224 -0
- data/ext/sdl/sge/sge.h +31 -0
- data/ext/sdl/sge/sge_blib.cpp +1939 -0
- data/ext/sdl/sge/sge_blib.h +68 -0
- data/ext/sdl/sge/sge_bm_text.cpp +451 -0
- data/ext/sdl/sge/sge_bm_text.h +71 -0
- data/ext/sdl/sge/sge_collision.cpp +388 -0
- data/ext/sdl/sge/sge_collision.h +54 -0
- data/ext/sdl/sge/sge_config.h +6 -0
- data/ext/sdl/sge/sge_internal.h +152 -0
- data/ext/sdl/sge/sge_misc.cpp +92 -0
- data/ext/sdl/sge/sge_misc.h +37 -0
- data/ext/sdl/sge/sge_primitives.cpp +2516 -0
- data/ext/sdl/sge/sge_primitives.h +111 -0
- data/ext/sdl/sge/sge_rotation.cpp +683 -0
- data/ext/sdl/sge/sge_rotation.h +46 -0
- data/ext/sdl/sge/sge_shape.cpp +762 -0
- data/ext/sdl/sge/sge_shape.h +365 -0
- data/ext/sdl/sge/sge_surface.cpp +1090 -0
- data/ext/sdl/sge/sge_surface.h +100 -0
- data/ext/sdl/sge/sge_textpp.cpp +785 -0
- data/ext/sdl/sge/sge_textpp.h +270 -0
- data/ext/sdl/sge/sge_tt_text.cpp +1456 -0
- data/ext/sdl/sge/sge_tt_text.h +114 -0
- data/graphics_setup.sh +26 -0
- data/lib/graphics.rb +1 -1
- data/lib/graphics/body.rb +50 -3
- data/lib/graphics/extensions.rb +13 -7
- data/lib/graphics/simulation.rb +126 -46
- data/test/test_graphics.rb +52 -12
- data/test/test_sdl.rb +1 -0
- metadata +54 -23
- metadata.gz.sig +0 -0
- data/.gemtest +0 -0
- data/examples/lito.rb +0 -108
- data/examples/zenspider1.rb +0 -93
- data/examples/zenspider2.rb +0 -123
- data/examples/zenspider3.rb +0 -104
- data/rubysdl_setup.sh +0 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0dc93f577bc8db9cd0a1943285badd63a7a8b993
|
4
|
+
data.tar.gz: c83fbd5e05b5a3e9294e5271f18e17310d7c122e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1a192627f226b8215af1e5b39bead9e16cf06c41937053e5cd2e627f6f35dff581b1d575356dea21f105f1aa46c3d49c26c3e42c9cd8906ea0eaaad50c13e58
|
7
|
+
data.tar.gz: a22e5142715d85c7f1bd254b7ea478ad1ea185c110d7f93a0cfcc3537d8a6586210987ee7ecde9a842c40b66b64e70e75412aa30040e96b0064087de47088acb
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
@@ -1,3 +1,33 @@
|
|
1
|
+
=== 1.0.0b4 / 2015-09-14
|
2
|
+
|
3
|
+
* 1 major enhancement:
|
4
|
+
|
5
|
+
* MAJOR rewrite. Replaced rubysdl with my own C extension.
|
6
|
+
* This unencumbers me from rubysdl, which was incomplete, LGPL, and hasn't had a commit in over a year.
|
7
|
+
|
8
|
+
* 11 minor enhancements:
|
9
|
+
|
10
|
+
* Added Body#angle_to
|
11
|
+
* Added Body#distance_to_squared
|
12
|
+
* Added Simulation#iter_per_tick and changed update to run that number of
|
13
|
+
* Added examples/canvas.rb to show drawing coordinate system.
|
14
|
+
* Added maze example from Jamis Buck's Mazes for Programmers.
|
15
|
+
* All blits are antialiased and default to 0deg rotation.
|
16
|
+
* Removed TTF.init
|
17
|
+
* Shift drawing of nearly all things by 1px in y. Makes drawing hline at 0 visible.
|
18
|
+
* Text now uses draw_blended_utf8 for smoother text rendering
|
19
|
+
* Updated rubysdl_setup.sh to be more correct. Not quite complete yet.
|
20
|
+
* Better math. powered by scotch™
|
21
|
+
|
22
|
+
* 6 bug fixes:
|
23
|
+
|
24
|
+
* Documented basic attribs of Body.
|
25
|
+
* Fixed drawing at y=0. Off by one, yo.
|
26
|
+
* Fixed fill_rect for y=0
|
27
|
+
* Fixed north/south reporting in clip now that we're in proper q1
|
28
|
+
* Fixed polygon refactor
|
29
|
+
* Fixed project url and got rdoc upload url set up correctly.
|
30
|
+
|
1
31
|
=== 1.0.0b1 / 2015-08-04
|
2
32
|
|
3
33
|
* 1 major enhancement
|
data/Manifest.txt
CHANGED
@@ -5,26 +5,58 @@ README.rdoc
|
|
5
5
|
Rakefile
|
6
6
|
examples/boid.rb
|
7
7
|
examples/bounce.rb
|
8
|
+
examples/canvas.rb
|
8
9
|
examples/collision.rb
|
9
10
|
examples/demo.rb
|
10
11
|
examples/editor.rb
|
11
12
|
examples/fluid.rb
|
12
13
|
examples/fluid2.rb
|
13
|
-
examples/
|
14
|
-
examples/
|
14
|
+
examples/gol.rb
|
15
|
+
examples/gol2.rb
|
15
16
|
examples/logo.rb
|
16
17
|
examples/math.rb
|
18
|
+
examples/maze.rb
|
17
19
|
examples/radar.rb
|
18
20
|
examples/tank.rb
|
19
21
|
examples/tank2.rb
|
20
22
|
examples/targeting.rb
|
21
23
|
examples/vants.rb
|
22
24
|
examples/walker.rb
|
23
|
-
examples/
|
24
|
-
examples/zenspider2.rb
|
25
|
-
examples/zenspider3.rb
|
26
|
-
examples/zenspider4.rb
|
25
|
+
examples/walker2.rb
|
27
26
|
examples/zombies.rb
|
27
|
+
ext/sdl/extconf.rb
|
28
|
+
ext/sdl/sdl.c
|
29
|
+
ext/sdl/sge/INSTALL
|
30
|
+
ext/sdl/sge/LICENSE
|
31
|
+
ext/sdl/sge/Makefile
|
32
|
+
ext/sdl/sge/Makefile.conf
|
33
|
+
ext/sdl/sge/README
|
34
|
+
ext/sdl/sge/Todo
|
35
|
+
ext/sdl/sge/WhatsNew
|
36
|
+
ext/sdl/sge/sge.h
|
37
|
+
ext/sdl/sge/sge_blib.cpp
|
38
|
+
ext/sdl/sge/sge_blib.h
|
39
|
+
ext/sdl/sge/sge_bm_text.cpp
|
40
|
+
ext/sdl/sge/sge_bm_text.h
|
41
|
+
ext/sdl/sge/sge_collision.cpp
|
42
|
+
ext/sdl/sge/sge_collision.h
|
43
|
+
ext/sdl/sge/sge_config.h
|
44
|
+
ext/sdl/sge/sge_internal.h
|
45
|
+
ext/sdl/sge/sge_misc.cpp
|
46
|
+
ext/sdl/sge/sge_misc.h
|
47
|
+
ext/sdl/sge/sge_primitives.cpp
|
48
|
+
ext/sdl/sge/sge_primitives.h
|
49
|
+
ext/sdl/sge/sge_rotation.cpp
|
50
|
+
ext/sdl/sge/sge_rotation.h
|
51
|
+
ext/sdl/sge/sge_shape.cpp
|
52
|
+
ext/sdl/sge/sge_shape.h
|
53
|
+
ext/sdl/sge/sge_surface.cpp
|
54
|
+
ext/sdl/sge/sge_surface.h
|
55
|
+
ext/sdl/sge/sge_textpp.cpp
|
56
|
+
ext/sdl/sge/sge_textpp.h
|
57
|
+
ext/sdl/sge/sge_tt_text.cpp
|
58
|
+
ext/sdl/sge/sge_tt_text.h
|
59
|
+
graphics_setup.sh
|
28
60
|
lib/graphics.rb
|
29
61
|
lib/graphics/body.rb
|
30
62
|
lib/graphics/extensions.rb
|
@@ -33,5 +65,5 @@ lib/graphics/trail.rb
|
|
33
65
|
lib/graphics/v.rb
|
34
66
|
resources/images/body.png
|
35
67
|
resources/images/turret.png
|
36
|
-
rubysdl_setup.sh
|
37
68
|
test/test_graphics.rb
|
69
|
+
test/test_sdl.rb
|
data/README.rdoc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
= graphics
|
2
2
|
|
3
|
-
home :: https://github.com/
|
3
|
+
home :: https://github.com/zenspider/graphics
|
4
4
|
rdoc :: http://docs.seattlerb.org/graphics
|
5
5
|
|
6
6
|
== DESCRIPTION:
|
@@ -27,15 +27,59 @@ when implementing your simulation.
|
|
27
27
|
|
28
28
|
== SYNOPSIS:
|
29
29
|
|
30
|
-
|
30
|
+
class Ball < Graphics::Body
|
31
|
+
def initialize w
|
32
|
+
super
|
33
|
+
|
34
|
+
# ...
|
35
|
+
end
|
36
|
+
|
37
|
+
def draw
|
38
|
+
w.angle x, y, a, 10+3*m, :red
|
39
|
+
w.circle x, y, 5, :white, :filled
|
40
|
+
end
|
41
|
+
|
42
|
+
def update
|
43
|
+
fall
|
44
|
+
move
|
45
|
+
bounce
|
46
|
+
end
|
47
|
+
|
48
|
+
# ...
|
49
|
+
end
|
50
|
+
|
51
|
+
class BounceSimulation < Graphics::Simulation
|
52
|
+
attr_accessor :bs
|
53
|
+
|
54
|
+
def initialize
|
55
|
+
super 640, 640, 16, "Bounce"
|
56
|
+
|
57
|
+
self.bs = populate Ball
|
58
|
+
end
|
59
|
+
|
60
|
+
def update n
|
61
|
+
bs.each(&:update)
|
62
|
+
end
|
63
|
+
|
64
|
+
def draw n
|
65
|
+
clear
|
66
|
+
bs.each(&:draw)
|
67
|
+
fps n
|
68
|
+
end
|
69
|
+
|
70
|
+
# ...
|
71
|
+
end
|
72
|
+
|
73
|
+
BounceSimulation.new.run
|
74
|
+
|
75
|
+
See examples/*.rb for more
|
31
76
|
|
32
77
|
== REQUIREMENTS:
|
33
78
|
|
34
79
|
* rsdl
|
35
|
-
* ruby-sdl
|
36
80
|
* libsdl & friends
|
37
81
|
|
38
|
-
See and/or run
|
82
|
+
See and/or run graphics_setup.sh. If you're on OSX and have homebrew
|
39
83
|
installed, running this will ensure you have a working setup.
|
40
84
|
|
41
85
|
You may want to run `brew update` beforehand to ensure you get
|
data/Rakefile
CHANGED
@@ -7,16 +7,22 @@ Hoe.plugin :isolate
|
|
7
7
|
Hoe.plugin :minitest, :history, :email # Hoe.plugin :seattlerb - :perforce
|
8
8
|
Hoe.plugin :rdoc
|
9
9
|
Hoe.plugin :git
|
10
|
+
Hoe.plugin :compiler
|
10
11
|
|
11
12
|
Hoe.spec "graphics" do
|
12
13
|
developer "Ryan Davis", "ryand-ruby@zenspider.com"
|
14
|
+
|
15
|
+
extension :sdl
|
16
|
+
|
13
17
|
license "MIT"
|
14
18
|
|
15
19
|
dependency "rsdl", "~> 0.1"
|
16
|
-
|
20
|
+
|
21
|
+
base = "/data/www/docs.seattlerb.org"
|
22
|
+
rdoc_locations << "docs-push.seattlerb.org:#{base}/#{remote_rdoc_dir}"
|
17
23
|
end
|
18
24
|
|
19
|
-
task :demos do
|
25
|
+
task :demos => :compile do
|
20
26
|
Dir["examples/*.rb"].each do |script|
|
21
27
|
puts script
|
22
28
|
system "rsdl -Ilib #{script}"
|
data/examples/boid.rb
CHANGED
@@ -6,8 +6,6 @@ require "graphics"
|
|
6
6
|
class Boid < Graphics::Body
|
7
7
|
COUNT = 50
|
8
8
|
|
9
|
-
AA = SDL::Surface::TRANSFORM_AA
|
10
|
-
|
11
9
|
PCT_DAMPENER = 0.01
|
12
10
|
TOO_CLOSE = 50
|
13
11
|
MAX_VELOCITY = 5
|
@@ -32,7 +30,7 @@ class Boid < Graphics::Body
|
|
32
30
|
def draw
|
33
31
|
# the blit looks HORRIBLE when rotated... dunno why
|
34
32
|
w.circle x, y, @@max_distance, :gray if w.visual_debug?
|
35
|
-
w.blit w.body_img, x, y
|
33
|
+
w.blit w.body_img, x, y
|
36
34
|
w.angle x, y, a, 3 * m, :red
|
37
35
|
end
|
38
36
|
|
@@ -254,8 +252,6 @@ class Boids < Graphics::Simulation
|
|
254
252
|
def initialize
|
255
253
|
super 850, 850, 16, "Boid"
|
256
254
|
|
257
|
-
SDL::Key.enable_key_repeat 500, 250
|
258
|
-
|
259
255
|
self.visual_debug = false
|
260
256
|
|
261
257
|
self.boids = populate Boid
|
@@ -265,22 +261,17 @@ class Boids < Graphics::Simulation
|
|
265
261
|
end
|
266
262
|
end
|
267
263
|
|
264
|
+
def initialize_keys
|
265
|
+
super
|
266
|
+
|
267
|
+
add_key_handler(:D) { self.visual_debug = ! visual_debug }
|
268
|
+
add_key_handler(:B) { Boid.max_distance += 5 }
|
269
|
+
add_key_handler(:S) { Boid.max_distance -= 5 }
|
270
|
+
end
|
271
|
+
|
268
272
|
def update n
|
269
273
|
boids.each(&:update)
|
270
274
|
self.boids.each(&:wrap)
|
271
|
-
# sleep 0.1
|
272
|
-
end
|
273
|
-
|
274
|
-
def handle_event e, n
|
275
|
-
case e
|
276
|
-
when SDL::Event::KeyDown then
|
277
|
-
self.visual_debug = ! visual_debug if SDL::Key.press? SDL::Key::D
|
278
|
-
|
279
|
-
Boid.max_distance += 5 if SDL::Key.press? SDL::Key::B
|
280
|
-
Boid.max_distance -= 5 if SDL::Key.press? SDL::Key::S
|
281
|
-
else
|
282
|
-
super
|
283
|
-
end
|
284
275
|
end
|
285
276
|
|
286
277
|
def draw n
|
data/examples/bounce.rb
CHANGED
@@ -12,11 +12,16 @@ class Ball < Graphics::Body
|
|
12
12
|
def initialize w
|
13
13
|
super
|
14
14
|
|
15
|
-
self.a =
|
16
|
-
self.m = rand
|
15
|
+
self.a = random_angle / 2
|
16
|
+
self.m = rand 25
|
17
17
|
self.g = G
|
18
18
|
end
|
19
19
|
|
20
|
+
def draw
|
21
|
+
w.angle x, y, a, 10+3*m, :red
|
22
|
+
w.circle x, y, 5, :white, :filled
|
23
|
+
end
|
24
|
+
|
20
25
|
def update
|
21
26
|
fall
|
22
27
|
move
|
@@ -26,18 +31,6 @@ class Ball < Graphics::Body
|
|
26
31
|
def fall
|
27
32
|
self.velocity += g
|
28
33
|
end
|
29
|
-
|
30
|
-
def label
|
31
|
-
l = "%.1f %.1f" % dx_dy
|
32
|
-
w.text l, x-10, y-40, :white
|
33
|
-
end
|
34
|
-
|
35
|
-
def draw
|
36
|
-
# w.angle x, y, a, 3*m, :red
|
37
|
-
w.angle x, y, a, 50, :red
|
38
|
-
w.circle x, y, 5, :white, :filled
|
39
|
-
# label
|
40
|
-
end
|
41
34
|
end
|
42
35
|
|
43
36
|
class BounceSimulation < Graphics::Simulation
|
@@ -49,6 +42,12 @@ class BounceSimulation < Graphics::Simulation
|
|
49
42
|
self.bs = populate Ball
|
50
43
|
end
|
51
44
|
|
45
|
+
def initialize_keys
|
46
|
+
super
|
47
|
+
add_key_handler :SPACE, &:randomize
|
48
|
+
add_key_handler :R, &:reverse
|
49
|
+
end
|
50
|
+
|
52
51
|
def update n
|
53
52
|
bs.each(&:update)
|
54
53
|
end
|
@@ -56,20 +55,13 @@ class BounceSimulation < Graphics::Simulation
|
|
56
55
|
def draw n
|
57
56
|
clear
|
58
57
|
bs.each(&:draw)
|
59
|
-
bs.first.label
|
60
58
|
fps n
|
61
59
|
end
|
62
60
|
|
63
|
-
def handle_keys
|
64
|
-
super
|
65
|
-
randomize if SDL::Key.press? SDL::Key::SPACE
|
66
|
-
reverse if SDL::Key.press? SDL::Key::R
|
67
|
-
end
|
68
|
-
|
69
61
|
def randomize
|
70
62
|
bs.each do |b|
|
71
|
-
b.m = rand(
|
72
|
-
b.a =
|
63
|
+
b.m = rand(25)
|
64
|
+
b.a = b.random_angle / 2
|
73
65
|
end
|
74
66
|
end
|
75
67
|
|
data/examples/canvas.rb
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
#!/usr/local/bin/ruby -w
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
|
4
|
+
require "graphics"
|
5
|
+
|
6
|
+
class Demo < Graphics::Simulation
|
7
|
+
attr_accessor :woot, :menlo32
|
8
|
+
attr_accessor :rct
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
super 801, 801
|
12
|
+
|
13
|
+
self.font = find_font("Menlo", 16)
|
14
|
+
self.menlo32 = find_font("Menlo", 32)
|
15
|
+
|
16
|
+
self.woot = render_text "woot", :black, menlo32
|
17
|
+
|
18
|
+
self.rct = sprite 50, 25 do
|
19
|
+
rect 0, 0, 49, 24, :blue # TODO: can't be black?!?
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def update n
|
24
|
+
end
|
25
|
+
|
26
|
+
L = Math.sqrt(200*200 + 100*100)
|
27
|
+
A = R2D*Math.atan2(200, 100)
|
28
|
+
|
29
|
+
def draw n
|
30
|
+
clear :white
|
31
|
+
|
32
|
+
(0..90).step(30) do |deg|
|
33
|
+
shift = (woot.h*Math.sin(D2R*deg))
|
34
|
+
put woot, 400-shift, 300, deg
|
35
|
+
end
|
36
|
+
text "woot", 400, 300, :red, menlo32
|
37
|
+
|
38
|
+
rect 550, 100, 50, 50, :blue, :filled
|
39
|
+
rect 575, 125, 50, 50, :blue
|
40
|
+
|
41
|
+
ellipse 550, 200, 50, 25, :red
|
42
|
+
ellipse 550, 250, 50, 25, :red, :filled
|
43
|
+
|
44
|
+
angle 50, 50, 90, 25, :blue
|
45
|
+
|
46
|
+
(0..w).step(100) do |x|
|
47
|
+
vline x, :red
|
48
|
+
text x.to_s, x+5, 5, :black
|
49
|
+
end
|
50
|
+
|
51
|
+
(0..h).step(100) do |y|
|
52
|
+
hline y, :green
|
53
|
+
text y.to_s, 5, y+5, :black
|
54
|
+
end
|
55
|
+
|
56
|
+
circle 200, 200, 100, :blue
|
57
|
+
text "circle 200, 200, 100, :blue", 100, 200, :black
|
58
|
+
|
59
|
+
bezier 400, 400, 450, 700, 550, 300, 600, 600, :blue
|
60
|
+
text "bezier 400, 400, 450, 700, 550, 300, 600, 600, :blue", 200, 400, :black
|
61
|
+
|
62
|
+
angle 200, 500, A, L, :black
|
63
|
+
text "angle 200, 500, %.2f, %.2f, :black" % [A, L], 100, 500, :black
|
64
|
+
|
65
|
+
(0..90).step(30).each do |deg|
|
66
|
+
put rct, 500-(rct.h*Math.sin(D2R*deg)), 600, deg
|
67
|
+
angle 500, 600, deg, 50, :red
|
68
|
+
|
69
|
+
blit rct, 600, 600, deg
|
70
|
+
angle 600, 600, deg, 50, :red
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
Demo.new.run if $0 == __FILE__
|
data/examples/collision.rb
CHANGED
@@ -28,21 +28,21 @@ class Sprite < Graphics::Body
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def collide_with? other
|
31
|
-
w.cmap.
|
31
|
+
w.cmap.check(x, y, w.cmap, other.x, other.y)
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
35
|
class Collision < Graphics::Simulation
|
36
|
-
attr_accessor :sprites, :cmap, :
|
36
|
+
attr_accessor :sprites, :cmap, :tank_img
|
37
37
|
|
38
38
|
def initialize
|
39
39
|
super 850, 850, 16, "Collision"
|
40
40
|
|
41
|
-
self.
|
42
|
-
self.cmap =
|
41
|
+
self.tank_img = image "resources/images/body.png"
|
42
|
+
self.cmap = tank_img.make_collision_map
|
43
43
|
|
44
44
|
self.sprites = populate Sprite do |s|
|
45
|
-
s.image =
|
45
|
+
s.image = tank_img
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
@@ -50,7 +50,7 @@ class Collision < Graphics::Simulation
|
|
50
50
|
"<Screen ...>"
|
51
51
|
end
|
52
52
|
|
53
|
-
def detect_collisions
|
53
|
+
def detect_collisions sprites
|
54
54
|
collisions = []
|
55
55
|
sprites.combination(2).each do |a, b|
|
56
56
|
collisions << a << b if a.collide_with? b
|