gamebox 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/VERSION +1 -1
- data/docs/gamebox.bat +3 -0
- data/docs/logo.ico +0 -0
- data/gamebox.gemspec +9 -2
- data/lib/gamebox/actors/fps.rb +23 -0
- data/lib/gamebox/arbiter.rb +32 -14
- data/lib/gamebox/data/graphics/logo.png +0 -0
- data/lib/gamebox/input_manager.rb +5 -0
- data/lib/gamebox/lib/publisher_ext.rb +7 -0
- data/lib/gamebox/sound_manager.rb +1 -1
- data/lib/gamebox/spatial_hash.rb +34 -3
- data/lib/gamebox/spatial_stagehand.rb +37 -0
- data/lib/gamebox/stage_manager.rb +9 -3
- data/lib/gamebox/tasks/gamebox_tasks.rb +8 -0
- data/lib/gamebox/templates/template_app/Gemfile +5 -0
- data/lib/gamebox/templates/template_app/Rakefile +20 -0
- data/lib/gamebox/templates/template_app/config/environment.rb +41 -29
- data/lib/gamebox/templates/template_app/src/app.rb +6 -8
- data/lib/gamebox/version.rb +2 -2
- data/lib/gamebox/viewport.rb +7 -0
- data/spec/collidable_spec.rb +1 -1
- data/spec/helper.rb +1 -0
- data/spec/spatial_hash_spec.rb +2 -0
- data/spec/stage_manager_spec.rb +26 -0
- metadata +10 -3
data/.gitignore
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
data/docs/gamebox.bat
ADDED
data/docs/logo.ico
ADDED
Binary file
|
data/gamebox.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{gamebox}
|
8
|
-
s.version = "0.0
|
8
|
+
s.version = "0.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Shawn Anderson", "Jason Roelofs", "Karlin Fox"]
|
12
|
-
s.date = %q{2010-04-
|
12
|
+
s.date = %q{2010-04-24}
|
13
13
|
s.default_executable = %q{gamebox}
|
14
14
|
s.description = %q{Framework for building and distributing games using Rubygame}
|
15
15
|
s.email = %q{shawn42@gmail.com}
|
@@ -26,7 +26,9 @@ Gem::Specification.new do |s|
|
|
26
26
|
"VERSION",
|
27
27
|
"bin/gamebox",
|
28
28
|
"docs/CODE_REVIEW",
|
29
|
+
"docs/gamebox.bat",
|
29
30
|
"docs/getting_started.rdoc",
|
31
|
+
"docs/logo.ico",
|
30
32
|
"docs/logo.png",
|
31
33
|
"gamebox.gemspec",
|
32
34
|
"lib/gamebox.rb",
|
@@ -34,6 +36,7 @@ Gem::Specification.new do |s|
|
|
34
36
|
"lib/gamebox/actor_factory.rb",
|
35
37
|
"lib/gamebox/actor_view.rb",
|
36
38
|
"lib/gamebox/actors/curtain.rb",
|
39
|
+
"lib/gamebox/actors/fps.rb",
|
37
40
|
"lib/gamebox/actors/label.rb",
|
38
41
|
"lib/gamebox/actors/logo.rb",
|
39
42
|
"lib/gamebox/actors/score.rb",
|
@@ -83,6 +86,7 @@ Gem::Specification.new do |s|
|
|
83
86
|
"lib/gamebox/resource_manager.rb",
|
84
87
|
"lib/gamebox/sound_manager.rb",
|
85
88
|
"lib/gamebox/spatial_hash.rb",
|
89
|
+
"lib/gamebox/spatial_stagehand.rb",
|
86
90
|
"lib/gamebox/spec/helper.rb",
|
87
91
|
"lib/gamebox/stage.rb",
|
88
92
|
"lib/gamebox/stage_manager.rb",
|
@@ -94,6 +98,7 @@ Gem::Specification.new do |s|
|
|
94
98
|
"lib/gamebox/templates/actor_view.erb",
|
95
99
|
"lib/gamebox/templates/actor_view_spec.erb",
|
96
100
|
"lib/gamebox/templates/template_app/.gitignore",
|
101
|
+
"lib/gamebox/templates/template_app/Gemfile",
|
97
102
|
"lib/gamebox/templates/template_app/README",
|
98
103
|
"lib/gamebox/templates/template_app/Rakefile",
|
99
104
|
"lib/gamebox/templates/template_app/config/boot.rb",
|
@@ -126,6 +131,7 @@ Gem::Specification.new do |s|
|
|
126
131
|
"spec/physical_spec.rb",
|
127
132
|
"spec/resource_manager_spec.rb",
|
128
133
|
"spec/spatial_hash_spec.rb",
|
134
|
+
"spec/stage_manager_spec.rb",
|
129
135
|
"spec/stage_spec.rb",
|
130
136
|
"spec/viewport_spec.rb"
|
131
137
|
]
|
@@ -147,6 +153,7 @@ Gem::Specification.new do |s|
|
|
147
153
|
"spec/physical_spec.rb",
|
148
154
|
"spec/resource_manager_spec.rb",
|
149
155
|
"spec/spatial_hash_spec.rb",
|
156
|
+
"spec/stage_manager_spec.rb",
|
150
157
|
"spec/stage_spec.rb",
|
151
158
|
"spec/viewport_spec.rb"
|
152
159
|
]
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class FpsView < ActorView
|
2
|
+
def draw(target,x_off,y_off)
|
3
|
+
text = @actor.fps.to_s
|
4
|
+
text = '0'*(6-text.size)+text if text.size < 6
|
5
|
+
|
6
|
+
font = @stage.resource_manager.load_font 'Asimov.ttf', 30
|
7
|
+
text_image = font.render text, true, [250,250,250,255]
|
8
|
+
|
9
|
+
x = @actor.x
|
10
|
+
y = @actor.y
|
11
|
+
|
12
|
+
text_image.blit target.screen, [x,y]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
class Fps < Actor
|
16
|
+
|
17
|
+
has_behavior :layered => {:layer => 999}
|
18
|
+
|
19
|
+
def fps
|
20
|
+
input_manager.current_framerate.round
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
data/lib/gamebox/arbiter.rb
CHANGED
@@ -2,18 +2,21 @@
|
|
2
2
|
module Arbiter
|
3
3
|
|
4
4
|
def register_collidable(actor)
|
5
|
+
@spatial_hash = stagehand(:spatial)
|
5
6
|
@collidable_actors ||= []
|
6
7
|
unless @collidable_actors.include? actor
|
7
8
|
actor.when :remove_me do
|
8
9
|
unregister_collidable actor
|
9
10
|
end
|
10
11
|
@collidable_actors << actor
|
12
|
+
@spatial_hash.add(actor)
|
11
13
|
end
|
12
14
|
end
|
13
15
|
|
14
16
|
def unregister_collidable(actor)
|
15
17
|
@collidable_actors ||= []
|
16
18
|
@collidable_actors.delete actor
|
19
|
+
@spatial_hash.remove(actor)
|
17
20
|
end
|
18
21
|
|
19
22
|
def on_collision_of(first_objs, second_objs, &block)
|
@@ -33,31 +36,46 @@ module Arbiter
|
|
33
36
|
end
|
34
37
|
end
|
35
38
|
|
39
|
+
def run_callbacks(collisions)
|
40
|
+
collisions.each do |collision|
|
41
|
+
first = collision.first
|
42
|
+
second = collision.last
|
43
|
+
|
44
|
+
colliders = @collision_handlers[first.actor_type]
|
45
|
+
callback = colliders[second.actor_type] unless colliders.nil?
|
46
|
+
callback.call first, second unless callback.nil?
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
36
50
|
def find_collisions
|
37
51
|
@collidable_actors ||= []
|
38
|
-
collisions = []
|
39
52
|
tmp_collidable_actors = @collidable_actors.dup
|
53
|
+
collisions = {}
|
40
54
|
|
41
55
|
@collidable_actors.each do |first|
|
42
|
-
|
43
|
-
|
56
|
+
x = first.x - @spatial_hash.cell_size
|
57
|
+
y = first.y - @spatial_hash.cell_size
|
58
|
+
w = @spatial_hash.cell_size * 3
|
59
|
+
h = w
|
60
|
+
tmp_collidable_actors = @spatial_hash.items_in(x,y,w,h)
|
44
61
|
|
45
62
|
tmp_collidable_actors.each do |second|
|
46
|
-
if collide?(first, second)
|
47
|
-
collisions
|
63
|
+
if first != second && collide?(first, second)
|
64
|
+
collisions[second] ||= []
|
65
|
+
if !collisions[second].include?(first)
|
66
|
+
collisions[first] ||= []
|
67
|
+
collisions[first] << second
|
68
|
+
end
|
48
69
|
end
|
49
70
|
end
|
50
|
-
|
51
71
|
end
|
52
|
-
|
53
|
-
collisions.each do |
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
colliders = @collision_handlers[first.actor_type]
|
58
|
-
callback = colliders[second.actor_type] unless colliders.nil?
|
59
|
-
callback.call first, second unless callback.nil?
|
72
|
+
unique_collisions = []
|
73
|
+
collisions.each do |first,seconds|
|
74
|
+
seconds.each do |second|
|
75
|
+
unique_collisions << [first,second]
|
76
|
+
end
|
60
77
|
end
|
78
|
+
run_callbacks unique_collisions
|
61
79
|
end
|
62
80
|
|
63
81
|
def collide?(object, other)
|
Binary file
|
@@ -74,6 +74,11 @@ class InputManager
|
|
74
74
|
@clock.target_framerate
|
75
75
|
end
|
76
76
|
|
77
|
+
# Returns the current framerate.
|
78
|
+
def current_framerate
|
79
|
+
@clock.framerate
|
80
|
+
end
|
81
|
+
|
77
82
|
# This is where the queue gets pumped. This gets called from your game application.
|
78
83
|
def main_loop(game)
|
79
84
|
catch(:rubygame_quit) do
|
@@ -1,5 +1,12 @@
|
|
1
1
|
module Publisher
|
2
2
|
module InstanceMethods
|
3
|
+
def can_fire?(event)
|
4
|
+
events = self.class.class_eval { @published_events }
|
5
|
+
events = self.class.published_events
|
6
|
+
return true if events == :any_event_is_ok
|
7
|
+
return false unless events and events.include?(event)
|
8
|
+
return true
|
9
|
+
end
|
3
10
|
def unsubscribe_all(listener)
|
4
11
|
if @subscriptions
|
5
12
|
for event in @subscriptions.keys
|
data/lib/gamebox/spatial_hash.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
class SpatialHash
|
2
2
|
|
3
|
-
|
3
|
+
attr_reader :cell_size
|
4
4
|
|
5
5
|
def initialize(cell_size)
|
6
6
|
@cell_size = cell_size.to_f
|
@@ -8,6 +8,11 @@ class SpatialHash
|
|
8
8
|
@items = []
|
9
9
|
end
|
10
10
|
|
11
|
+
def cell_size=(new_size)
|
12
|
+
@cell_size = new_size
|
13
|
+
rehash
|
14
|
+
end
|
15
|
+
|
11
16
|
def rehash
|
12
17
|
items = @items
|
13
18
|
@items = []
|
@@ -32,10 +37,12 @@ class SpatialHash
|
|
32
37
|
end
|
33
38
|
|
34
39
|
def lookup(item)
|
35
|
-
w = 1
|
36
|
-
h = 1
|
37
40
|
w = item.width if item.respond_to? :width
|
38
41
|
h = item.height if item.respond_to? :height
|
42
|
+
|
43
|
+
w ||= 1
|
44
|
+
h ||= 1
|
45
|
+
|
39
46
|
x = item.x
|
40
47
|
y = item.y
|
41
48
|
min_x, min_y = bucket_for x, y
|
@@ -82,5 +89,29 @@ class SpatialHash
|
|
82
89
|
end
|
83
90
|
end
|
84
91
|
|
92
|
+
def items_in(x,y,w,h)
|
93
|
+
return items_at x, y if ((w.nil? || w == 1) && (h.nil? || w == 1))
|
94
|
+
|
95
|
+
min_x, min_y = bucket_for x, y
|
96
|
+
if w == 1 && h == 1
|
97
|
+
max_x = min_x
|
98
|
+
max_y = min_y
|
99
|
+
else
|
100
|
+
max_x, max_y = bucket_for x+w-1, y+h-1
|
101
|
+
end
|
102
|
+
|
103
|
+
items = []
|
104
|
+
(max_x-min_x+1).times do |i|
|
105
|
+
(max_y-min_y+1).times do |j|
|
106
|
+
bucket_x = min_x + i
|
107
|
+
bucket_y = min_y + j
|
108
|
+
unless @buckets[bucket_x].nil? || @buckets[bucket_x][bucket_y].nil?
|
109
|
+
items << @buckets[bucket_x][bucket_y]
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
items.flatten.uniq
|
114
|
+
end
|
115
|
+
|
85
116
|
end
|
86
117
|
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spatial_hash'
|
2
|
+
|
3
|
+
class SpatialStagehand < Stagehand
|
4
|
+
|
5
|
+
DEFAULT_PARAMS = {
|
6
|
+
:cell_size = 50
|
7
|
+
}
|
8
|
+
def setup
|
9
|
+
merged_opts = DEFAULT_PARAMS.merge opts
|
10
|
+
@spatial_actors = SpatialHash.new merged_opts[:cell_size]
|
11
|
+
end
|
12
|
+
|
13
|
+
def cell_size
|
14
|
+
@spatial_actors.cell_size
|
15
|
+
end
|
16
|
+
|
17
|
+
def add(actor)
|
18
|
+
@spatial_actors.add actor
|
19
|
+
end
|
20
|
+
|
21
|
+
def remove(actor)
|
22
|
+
@spatial_actors.remove actor
|
23
|
+
end
|
24
|
+
|
25
|
+
def update(time)
|
26
|
+
@spatial_actors.rehash
|
27
|
+
end
|
28
|
+
|
29
|
+
def items_at(x,y)
|
30
|
+
@spatial_actors.items_at x, y
|
31
|
+
end
|
32
|
+
|
33
|
+
def items_in(x,y,w,h)
|
34
|
+
@spatial_actors.items_in x, y, w, h
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -63,7 +63,9 @@ class StageManager
|
|
63
63
|
puts "last stage, exiting"
|
64
64
|
exit
|
65
65
|
end
|
66
|
-
@stages.delete @stage_names[index+1]
|
66
|
+
stage = @stages.delete @stage_names[index+1]
|
67
|
+
@input_manager.clear_hooks stage
|
68
|
+
|
67
69
|
change_stage_to @stage_names[index+1], *args
|
68
70
|
end
|
69
71
|
|
@@ -73,14 +75,18 @@ class StageManager
|
|
73
75
|
puts "first stage, exiting"
|
74
76
|
exit
|
75
77
|
end
|
76
|
-
@stages.delete @stage_names[index-1]
|
78
|
+
stage = @stages.delete @stage_names[index-1]
|
79
|
+
@input_manager.clear_hooks stage
|
77
80
|
change_stage_to @stage_names[index-1], *args
|
78
81
|
end
|
79
82
|
|
80
83
|
def restart_stage(*args)
|
81
84
|
current_stage.curtain_dropping *args
|
82
85
|
index = @stage_names.index @stage
|
83
|
-
|
86
|
+
|
87
|
+
stage = @stages.delete @stage_names[index]
|
88
|
+
@input_manager.clear_hooks stage
|
89
|
+
|
84
90
|
change_stage_to @stage, *args
|
85
91
|
end
|
86
92
|
|
@@ -26,6 +26,12 @@ task :debug do |t|
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
+
desc "Bundle in all required gems"
|
30
|
+
task :bundle do |t|
|
31
|
+
sh "bundle package"
|
32
|
+
sh "bundle install vendor/bundle --disable-shared-gems"
|
33
|
+
end
|
34
|
+
|
29
35
|
begin
|
30
36
|
require 'spec/rake/spectask'
|
31
37
|
desc "Run all specs"
|
@@ -39,3 +45,5 @@ rescue LoadError
|
|
39
45
|
puts "warning: rspec not installed"
|
40
46
|
puts "install with gem install rspec"
|
41
47
|
end
|
48
|
+
|
49
|
+
|
@@ -14,3 +14,23 @@ STATS_DIRECTORIES = [
|
|
14
14
|
%w(Libraries lib/),
|
15
15
|
].collect { |name, dir| [ name, "#{APP_ROOT}/#{dir}" ] }.select { |name, dir| File.directory?(dir) }
|
16
16
|
|
17
|
+
namespace :dist do
|
18
|
+
task :vendor do
|
19
|
+
sh 'wget http://github.com/downloads/shawn42/gamebox/vendor.zip; unzip vendor.zip; rm vendor.zip'
|
20
|
+
end
|
21
|
+
task :win do
|
22
|
+
# create dist dir
|
23
|
+
FileUtils.mkdir "dist" unless File.exist? "dist"
|
24
|
+
# pull down windows app shell
|
25
|
+
# expand into place
|
26
|
+
sh 'cd dist; wget http://github.com/downloads/shawn42/gamebox/gamebox_app.zip; unzip gamebox_app.zip; mv gamebox_app/* .; rm gamebox_app.zip; rm -rf gamebox_app'
|
27
|
+
|
28
|
+
# copy config/src/lib/data into dist/src
|
29
|
+
%w{vendor config data }.each do |dir|
|
30
|
+
FileUtils.cp_r dir, File.join('dist','src', dir) if File.exist? dir
|
31
|
+
end
|
32
|
+
FileUtils.cp_r 'src', File.join('dist', 'src')
|
33
|
+
|
34
|
+
# create zip of dist?
|
35
|
+
end
|
36
|
+
end
|
@@ -1,29 +1,41 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
src
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
1
|
+
|
2
|
+
unless ENV['OCRA_EXECUTABLE'].nil?
|
3
|
+
APP_ROOT = "#{File.join(File.dirname($0),"..")}/"
|
4
|
+
Dir.chdir(File.join(File.dirname($0),"..",'src'))
|
5
|
+
else
|
6
|
+
APP_ROOT = "#{File.join(File.dirname($0),"..")}/"
|
7
|
+
end
|
8
|
+
|
9
|
+
gems = Dir[APP_ROOT+"vendor/gems/*"]
|
10
|
+
gems.each do |bundled_gem|
|
11
|
+
$:.unshift bundled_gem+"/lib"
|
12
|
+
end
|
13
|
+
|
14
|
+
ADDITIONAL_LOAD_PATHS = []
|
15
|
+
ADDITIONAL_LOAD_PATHS.concat %w(
|
16
|
+
src
|
17
|
+
lib
|
18
|
+
config
|
19
|
+
../../lib
|
20
|
+
).map { |dir| File.join(APP_ROOT,dir) }
|
21
|
+
|
22
|
+
ADDITIONAL_LOAD_PATHS.each do |path|
|
23
|
+
$:.unshift path
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
CONFIG_PATH = APP_ROOT + "config/"
|
29
|
+
DATA_PATH = APP_ROOT + "data/"
|
30
|
+
SOUND_PATH = APP_ROOT + "data/sounds/"
|
31
|
+
MUSIC_PATH = APP_ROOT + "data/music/"
|
32
|
+
GFX_PATH = APP_ROOT + "data/graphics/"
|
33
|
+
FONTS_PATH = APP_ROOT + "data/fonts/"
|
34
|
+
|
35
|
+
require 'gamebox'
|
36
|
+
|
37
|
+
GAMEBOX_DATA_PATH = GAMEBOX_PATH + "data/"
|
38
|
+
GAMEBOX_SOUND_PATH = GAMEBOX_PATH + "data/sounds/"
|
39
|
+
GAMEBOX_MUSIC_PATH = GAMEBOX_PATH + "data/music/"
|
40
|
+
GAMEBOX_GFX_PATH = GAMEBOX_PATH + "data/graphics/"
|
41
|
+
GAMEBOX_FONTS_PATH = GAMEBOX_PATH + "data/fonts/"
|
@@ -1,8 +1,6 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
|
4
|
-
require 'environment'
|
5
|
-
|
6
|
-
|
7
|
-
GameboxApp.run ARGV, ENV
|
8
|
-
end
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$: << File.join(File.dirname($0),"..","config")
|
4
|
+
require 'environment'
|
5
|
+
|
6
|
+
GameboxApp.run ARGV, ENV
|
data/lib/gamebox/version.rb
CHANGED
data/lib/gamebox/viewport.rb
CHANGED
@@ -22,6 +22,13 @@ class Viewport
|
|
22
22
|
@height = height
|
23
23
|
end
|
24
24
|
|
25
|
+
def scroll(x_delta,y_delta)
|
26
|
+
@x_offset += x_delta
|
27
|
+
@y_offset += y_delta
|
28
|
+
|
29
|
+
fire :scrolled
|
30
|
+
end
|
31
|
+
|
25
32
|
def x_offset(layer=1)
|
26
33
|
return 0 if layer == Float::INFINITY
|
27
34
|
return @x_offset if layer == 1
|
data/spec/collidable_spec.rb
CHANGED
data/spec/helper.rb
CHANGED
data/spec/spatial_hash_spec.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__),'helper')
|
2
|
+
require 'stage_manager'
|
3
|
+
|
4
|
+
describe 'A new stage manager' do
|
5
|
+
before do
|
6
|
+
# opts = {:resource_manager => stub, :actor_factory => stub, :input_manager => stub,
|
7
|
+
# :sound_manager => stub, :config_manager => stub}
|
8
|
+
# @stage_manager = StageManager.new opts
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should construct' #do
|
12
|
+
# @stage_manager.should_not be_nil
|
13
|
+
# end
|
14
|
+
|
15
|
+
describe '#prev_stage' do
|
16
|
+
it 'should exit on prev_stage of first stage'
|
17
|
+
it 'should go to prev stage'
|
18
|
+
end
|
19
|
+
describe '#next_stage' do
|
20
|
+
it 'should exit on next_stage of last stage'
|
21
|
+
it 'should go to next stage'
|
22
|
+
end
|
23
|
+
describe '#restart_stage' do
|
24
|
+
it 'should restart the current stage'
|
25
|
+
end
|
26
|
+
end
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
+
- 1
|
7
8
|
- 0
|
8
|
-
|
9
|
-
version: 0.0.9
|
9
|
+
version: 0.1.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Shawn Anderson
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-04-
|
19
|
+
date: 2010-04-24 00:00:00 -04:00
|
20
20
|
default_executable: gamebox
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -96,7 +96,9 @@ files:
|
|
96
96
|
- VERSION
|
97
97
|
- bin/gamebox
|
98
98
|
- docs/CODE_REVIEW
|
99
|
+
- docs/gamebox.bat
|
99
100
|
- docs/getting_started.rdoc
|
101
|
+
- docs/logo.ico
|
100
102
|
- docs/logo.png
|
101
103
|
- gamebox.gemspec
|
102
104
|
- lib/gamebox.rb
|
@@ -104,6 +106,7 @@ files:
|
|
104
106
|
- lib/gamebox/actor_factory.rb
|
105
107
|
- lib/gamebox/actor_view.rb
|
106
108
|
- lib/gamebox/actors/curtain.rb
|
109
|
+
- lib/gamebox/actors/fps.rb
|
107
110
|
- lib/gamebox/actors/label.rb
|
108
111
|
- lib/gamebox/actors/logo.rb
|
109
112
|
- lib/gamebox/actors/score.rb
|
@@ -153,6 +156,7 @@ files:
|
|
153
156
|
- lib/gamebox/resource_manager.rb
|
154
157
|
- lib/gamebox/sound_manager.rb
|
155
158
|
- lib/gamebox/spatial_hash.rb
|
159
|
+
- lib/gamebox/spatial_stagehand.rb
|
156
160
|
- lib/gamebox/spec/helper.rb
|
157
161
|
- lib/gamebox/stage.rb
|
158
162
|
- lib/gamebox/stage_manager.rb
|
@@ -164,6 +168,7 @@ files:
|
|
164
168
|
- lib/gamebox/templates/actor_view.erb
|
165
169
|
- lib/gamebox/templates/actor_view_spec.erb
|
166
170
|
- lib/gamebox/templates/template_app/.gitignore
|
171
|
+
- lib/gamebox/templates/template_app/Gemfile
|
167
172
|
- lib/gamebox/templates/template_app/README
|
168
173
|
- lib/gamebox/templates/template_app/Rakefile
|
169
174
|
- lib/gamebox/templates/template_app/config/boot.rb
|
@@ -196,6 +201,7 @@ files:
|
|
196
201
|
- spec/physical_spec.rb
|
197
202
|
- spec/resource_manager_spec.rb
|
198
203
|
- spec/spatial_hash_spec.rb
|
204
|
+
- spec/stage_manager_spec.rb
|
199
205
|
- spec/stage_spec.rb
|
200
206
|
- spec/viewport_spec.rb
|
201
207
|
has_rdoc: true
|
@@ -240,5 +246,6 @@ test_files:
|
|
240
246
|
- spec/physical_spec.rb
|
241
247
|
- spec/resource_manager_spec.rb
|
242
248
|
- spec/spatial_hash_spec.rb
|
249
|
+
- spec/stage_manager_spec.rb
|
243
250
|
- spec/stage_spec.rb
|
244
251
|
- spec/viewport_spec.rb
|