kawaii 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. data/.DS_Store +0 -0
  2. data/.gitignore +2 -0
  3. data/.yardoc/checksums +19 -0
  4. data/.yardoc/object_types +0 -0
  5. data/.yardoc/objects/root.dat +0 -0
  6. data/.yardoc/proxy_types +0 -0
  7. data/Gemfile +3 -0
  8. data/Gemfile.lock +28 -0
  9. data/LICENSE +22 -0
  10. data/README.md +46 -0
  11. data/Rakefile +2 -0
  12. data/backlog.md +26 -0
  13. data/bin/kawaii +13 -0
  14. data/doc/Kawaii/Animation.html +120 -0
  15. data/doc/Kawaii/AudioManager.html +202 -0
  16. data/doc/Kawaii/ContentManager.html +487 -0
  17. data/doc/Kawaii/Entity.html +604 -0
  18. data/doc/Kawaii/Game.html +1141 -0
  19. data/doc/Kawaii/InputManager.html +120 -0
  20. data/doc/Kawaii/Intro.html +120 -0
  21. data/doc/Kawaii/Math.html +105 -0
  22. data/doc/Kawaii/Node.html +1030 -0
  23. data/doc/Kawaii/NodeManager.html +512 -0
  24. data/doc/Kawaii/Scene.html +120 -0
  25. data/doc/Kawaii/SceneManager.html +200 -0
  26. data/doc/Kawaii/TextField.html +538 -0
  27. data/doc/Kawaii/TmxLayer.html +836 -0
  28. data/doc/Kawaii/TmxTileMap.html +972 -0
  29. data/doc/Kawaii/Tweening.html +120 -0
  30. data/doc/Kawaii/UnsupportedFormatError.html +123 -0
  31. data/doc/Kawaii/Vector2.html +514 -0
  32. data/doc/Kawaii.html +136 -0
  33. data/doc/_index.html +327 -0
  34. data/doc/class_list.html +53 -0
  35. data/doc/css/common.css +1 -0
  36. data/doc/css/full_list.css +57 -0
  37. data/doc/css/style.css +328 -0
  38. data/doc/file.README.html +130 -0
  39. data/doc/file_list.html +55 -0
  40. data/doc/frames.html +28 -0
  41. data/doc/index.html +130 -0
  42. data/doc/js/app.js +214 -0
  43. data/doc/js/full_list.js +173 -0
  44. data/doc/js/jquery.js +4 -0
  45. data/doc/method_list.html +708 -0
  46. data/doc/top-level-namespace.html +112 -0
  47. data/kawaii.gemspec +27 -0
  48. data/lib/kawaii/animation.rb +4 -0
  49. data/lib/kawaii/audio_manager.rb +7 -0
  50. data/lib/kawaii/command.rb +96 -0
  51. data/lib/kawaii/constants.rb +5 -0
  52. data/lib/kawaii/content_manager.rb +34 -0
  53. data/lib/kawaii/entity.rb +25 -0
  54. data/lib/kawaii/errors.rb +6 -0
  55. data/lib/kawaii/game.rb +89 -0
  56. data/lib/kawaii/helpers.rb +22 -0
  57. data/lib/kawaii/input_manager.rb +51 -0
  58. data/lib/kawaii/intro.rb +4 -0
  59. data/lib/kawaii/math.rb +5 -0
  60. data/lib/kawaii/node.rb +62 -0
  61. data/lib/kawaii/node_manager.rb +35 -0
  62. data/lib/kawaii/physics_entity.rb +32 -0
  63. data/lib/kawaii/physics_manager.rb +27 -0
  64. data/lib/kawaii/scene.rb +21 -0
  65. data/lib/kawaii/scene_manager.rb +50 -0
  66. data/lib/kawaii/text_field.rb +22 -0
  67. data/lib/kawaii/tmx_layer.rb +44 -0
  68. data/lib/kawaii/tmx_tile_map.rb +70 -0
  69. data/lib/kawaii/tweening.rb +4 -0
  70. data/lib/kawaii/vector2.rb +26 -0
  71. data/lib/kawaii/version.rb +3 -0
  72. data/lib/kawaii.rb +22 -0
  73. data/samples/.DS_Store +0 -0
  74. data/samples/content/gfx/ball.png +0 -0
  75. data/samples/content/maps/test_map.json +39 -0
  76. data/samples/content/maps/test_map.xml +12 -0
  77. data/samples/sample.rb +25 -0
  78. data/samples/sample_1/.DS_Store +0 -0
  79. data/samples/sample_1/content/gfx/ball.png +0 -0
  80. data/samples/sample_1/content/gfx/map1.png +0 -0
  81. data/samples/sample_1/content/maps/map1.json +50 -0
  82. data/samples/sample_1/content/maps/map1.tmx +16 -0
  83. data/samples/sample_1/content/maps/test_map.json +39 -0
  84. data/samples/sample_1/content/maps/test_map.xml +12 -0
  85. data/samples/sample_1/enemy.rb +11 -0
  86. data/samples/sample_1/sample_game.rb +51 -0
  87. data/samples/sample_chipmunk/sample.rb +0 -0
  88. data/spec/kawaii/audio_manager_spec.rb +9 -0
  89. data/spec/kawaii/content/gfx/ball.png +0 -0
  90. data/spec/kawaii/content/maps/test_map.json +39 -0
  91. data/spec/kawaii/content/maps/test_map.xml +12 -0
  92. data/spec/kawaii/content_manager_spec.rb +33 -0
  93. data/spec/kawaii/entity_spec.rb +38 -0
  94. data/spec/kawaii/game_spec.rb +23 -0
  95. data/spec/kawaii/helpers_spec.rb +31 -0
  96. data/spec/kawaii/input_manager_spec.rb +29 -0
  97. data/spec/kawaii/node_manager_spec.rb +36 -0
  98. data/spec/kawaii/node_spec.rb +81 -0
  99. data/spec/kawaii/physics_entity_spec.rb +37 -0
  100. data/spec/kawaii/physics_manager_spec.rb +45 -0
  101. data/spec/kawaii/scene_manager_spec.rb +34 -0
  102. data/spec/kawaii/scene_spec.rb +31 -0
  103. data/spec/kawaii/text_field_spec.rb +17 -0
  104. data/spec/kawaii/tmx_layer_spec.rb +21 -0
  105. data/spec/kawaii/tmx_tile_map_spec.rb +38 -0
  106. data/spec/kawaii/vector2_spec.rb +34 -0
  107. data/spec/spec_helper.rb +1 -0
  108. metadata +205 -0
@@ -0,0 +1,112 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Top Level Namespace
8
+
9
+ &mdash; Documentation by YARD 0.8.2.1
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '';
20
+ framesUrl = "frames.html#!" + escape(window.location.href);
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="_index.html">Index</a> &raquo;
35
+
36
+
37
+ <span class="title">Top Level Namespace</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Top Level Namespace
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+ </dl>
82
+ <div class="clear"></div>
83
+
84
+ <h2>Defined Under Namespace</h2>
85
+ <p class="children">
86
+
87
+
88
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="Kawaii.html" title="Kawaii (module)">Kawaii</a></span>
89
+
90
+
91
+
92
+
93
+ </p>
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+ </div>
104
+
105
+ <div id="footer">
106
+ Generated on Wed Jul 11 13:46:34 2012 by
107
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
108
+ 0.8.2.1 (ruby-1.9.3).
109
+ </div>
110
+
111
+ </body>
112
+ </html>
data/kawaii.gemspec ADDED
@@ -0,0 +1,27 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+ require 'kawaii/version'
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.version = Kawaii::VERSION
6
+
7
+ gem.name = "kawaii"
8
+ gem.date = %q[2012-07-11]
9
+ gem.authors = ["Erik Skoglund"]
10
+ gem.platform = Gem::Platform::RUBY
11
+ gem.email = "erikskoglund88@gmail.com"
12
+ gem.summary = "game library that extends gosu"
13
+ gem.homepage = "https://github.com/eriksk/kawaii"
14
+ gem.description = "kawaii provides a tiny game library that extends gosu"
15
+
16
+ gem.files = `git ls-files`.split($\)
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ["lib"]
19
+
20
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
+
22
+ gem.default_executable = 'kawaii'
23
+
24
+ gem.add_dependency('gosu', '>= 0.7.43')
25
+ gem.add_dependency('chipmunk', '>= 5.3.4.5')
26
+ gem.add_development_dependency('rspec')
27
+ end
@@ -0,0 +1,4 @@
1
+ module Kawaii
2
+ class Animation
3
+ end
4
+ end
@@ -0,0 +1,7 @@
1
+ module Kawaii
2
+ class AudioManager
3
+ def initialize game
4
+ @game = game
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,96 @@
1
+ class String
2
+ # colorization
3
+ def colorize(text, color_code)
4
+ "\e[#{color_code}m#{text}\e[0m"
5
+ end
6
+
7
+ def red
8
+ colorize(self, 31)
9
+ end
10
+ def green
11
+ colorize(self, 32)
12
+ end
13
+ def yellow
14
+ colorize(self, 33)
15
+ end
16
+ def pink
17
+ colorize(self, 35)
18
+ end
19
+ end
20
+
21
+ module Kawaii
22
+ class Command
23
+ def self.run command, args
24
+ puts ""
25
+ case command
26
+ when "new"
27
+ new_game_template(args)
28
+ when "help"
29
+ print_help()
30
+ else
31
+ end
32
+ puts ""
33
+ end
34
+
35
+ private
36
+ def self.new_game_template args
37
+ width = 800
38
+ height = 600
39
+ fullscreen = false
40
+ game_class_name = args.first.capitalize
41
+ File.open(args.first + ".rb", "w+") do |f|
42
+ f.write <<-EOF
43
+ require 'kawaii'
44
+
45
+ class #{game_class_name} < Kawaii::Game
46
+
47
+ WIDTH = #{width}
48
+ HEIGHT = #{height}
49
+ FULLSCREEN = #{fullscreen}
50
+ CONTENT_ROOT = "content"
51
+
52
+ def initialize
53
+ super WIDTH, HEIGHT, FULLSCREEN, CONTENT_ROOT
54
+ load_game
55
+ end
56
+
57
+ def load_game
58
+ # TODO: load code goes here
59
+ end
60
+
61
+ def input
62
+ # TODO: input goes here
63
+ if button_down?Gosu::KbEscape
64
+ exit
65
+ end
66
+ end
67
+
68
+ def before_update
69
+ # TODO: game logic goes here
70
+ input
71
+ end
72
+
73
+ def after_update
74
+ # TODO: game logic goes here
75
+ end
76
+ end
77
+
78
+ # entry point
79
+ game = #{game_class_name}.new
80
+ game.show
81
+ EOF
82
+ end
83
+
84
+ puts "Successfully created new game '#{game_class_name}'".green
85
+ puts "Run it with the command: " + "ruby #{args.first}.rb".yellow
86
+ end
87
+
88
+ def self.print_help
89
+ puts "Kawaii <3".pink
90
+ puts <<-EOF
91
+ Commands:
92
+ new [name] # create new game template
93
+ EOF
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,5 @@
1
+ module Kawaii
2
+ GRAVITY = 0.00098
3
+ DEFAULT_CELL_SIZE = 32
4
+ SCENE_TRANSITION_DURATION = 1000
5
+ end
@@ -0,0 +1,34 @@
1
+ require 'gosu'
2
+
3
+ module Kawaii
4
+ class ContentManager
5
+
6
+ attr_accessor :root, :images
7
+
8
+ def initialize window, root
9
+ @window = window
10
+ @root = root
11
+ @images = {}
12
+ end
13
+
14
+ def clear
15
+ @images.clear
16
+ end
17
+
18
+ # loads an image and caches it for further use
19
+ # if an image has been loaded it is just being returned
20
+ def load_image(path, tileable = false)
21
+ if !@images[path]
22
+ @images[path] = Gosu::Image.new(@window, "#{@root}/#{path}", tileable)
23
+ end
24
+ @images[path]
25
+ end
26
+
27
+ def load_tiled_images(path, cell_size)
28
+ if !@images[path]
29
+ @images[path] = Gosu::Image.load_tiles(@window, "#{@root}/#{path}", cell_size, cell_size, true)
30
+ end
31
+ @images[path]
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,25 @@
1
+ require_relative 'node'
2
+
3
+ module Kawaii
4
+ class Entity < Kawaii::Node
5
+
6
+ attr_accessor :flipped_h, :flipped_v, :texture
7
+
8
+ def initialize texture
9
+ super()
10
+ @flipped_v, @flipped_h = false, false
11
+ @texture = texture
12
+ end
13
+
14
+ def before_update dt
15
+ end
16
+
17
+ def after_update dt
18
+ end
19
+
20
+ def draw
21
+ # TODO: draw flipped v & h
22
+ @texture.draw_rot(self.position.x, self.position.y, 0, 0) # TODO: rotation
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,6 @@
1
+ module Kawaii
2
+ class UnsupportedFormatError < StandardError
3
+ end
4
+ class WrongTypeError < StandardError
5
+ end
6
+ end
@@ -0,0 +1,89 @@
1
+ require 'gosu'
2
+
3
+ module Kawaii
4
+ class Game < Gosu::Window
5
+
6
+ attr_accessor :width, :height, :fullscreen, :show_fps, :font, :node_manager, :content_manager, :physics_manager
7
+
8
+ def initialize width = 800, height = 600, fullscreen = false, content_root = "content", debug = true
9
+ super width, height, fullscreen
10
+ @width, @height, @fullscreen = width, height, fullscreen
11
+
12
+ # managers
13
+ @node_manager = Kawaii::NodeManager.new
14
+ @content_manager = Kawaii::ContentManager.new(self, content_root)
15
+ @audio_manager = Kawaii::AudioManager.new(self)
16
+ @input_manager = Kawaii::InputManager.new(self)
17
+ @physics_manager = Kawaii::PhysicsManager.new
18
+
19
+ # stats
20
+ @top_color = Gosu::Color.new(0xFF1EB1FA)
21
+ @bottom_color = Gosu::Color.new(0xFF1D4DB5)
22
+ @font = Gosu::Font.new(self, Gosu::default_font_name, 18)
23
+ @debug = debug
24
+
25
+ if @debug
26
+ puts "Game settings:"
27
+ puts "\tResolution: #{width}:#{height}"
28
+ puts "\tFullscreen: #{fullscreen}"
29
+ puts "\tContent root: #{content_root}"
30
+ print_stats
31
+ end
32
+ end
33
+
34
+ def add_child node
35
+ @node_manager.nodes.push node
36
+ end
37
+
38
+ def remove_child node
39
+ @node_manager.nodes.delete node
40
+ end
41
+
42
+ def print_stats
43
+ puts "Statistics:"
44
+ puts "Nodes: #{node_manager.count}"
45
+ end
46
+
47
+ def update
48
+ if self.class.method_defined? :before_update
49
+ before_update
50
+ end
51
+
52
+ @dt = delta()
53
+ @node_manager.update @dt
54
+
55
+ if self.class.method_defined? :after_update
56
+ after_update
57
+ end
58
+ end
59
+
60
+ def delta
61
+ 16.0 # TODO: real delta
62
+ end
63
+
64
+ def get_fps
65
+ 1000.0 / delta
66
+ end
67
+
68
+ def before_draw
69
+ end
70
+
71
+ def after_draw
72
+ end
73
+
74
+ def draw
75
+ draw_quad(
76
+ 0, 0, @top_color,
77
+ @width, 0, @top_color,
78
+ @width, @height, @bottom_color,
79
+ 0, @height, @bottom_color,
80
+ )
81
+ before_draw
82
+ @node_manager.draw
83
+ if @debug
84
+ @font.draw("FPS: #{get_fps}", 14, 14, 0)
85
+ end
86
+ after_draw
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,22 @@
1
+ module Kawaii
2
+
3
+ def self.lerp min, max, weight
4
+ min + (max - min) * weight
5
+ end
6
+
7
+ def self.clerp min, max, weight
8
+ weight2 = (1.0 - Math::cos(weight * Math::PI)) / 2.0
9
+ min * (1.0 - weight2) + max * weight2
10
+ end
11
+
12
+ def self.smooth_step y0, y1, y2, y3, mu
13
+
14
+ mu2 = mu*mu
15
+ a0 = y3 - y2 - y0 + y1
16
+ a1 = y0 - y1 - a0
17
+ a2 = y2 - y0
18
+ a3 = y1
19
+
20
+ (a0*mu*mu2+a1*mu2+a2*mu+a3)
21
+ end
22
+ end
@@ -0,0 +1,51 @@
1
+ module Kawaii
2
+ class InputManager
3
+
4
+ attr_accessor :game
5
+
6
+ def initialize game, bound_buttons = []
7
+ @game = game
8
+ @buttons = []
9
+ @bound_buttons = bound_buttons
10
+
11
+ @old_mouse_x = 0.0
12
+ @old_mouse_y = 0.0
13
+ end
14
+
15
+ def update
16
+ @buttons.clear
17
+ @bound_buttons.each do |btn|
18
+ @buttons.push btn if button_down? btn
19
+ end
20
+ @old_mouse_x = mouse_x
21
+ @old_mouse_y = mouse_y
22
+ end
23
+
24
+ def button_down? button
25
+ @game.button_down?(button)
26
+ end
27
+
28
+ def button_clicked? button
29
+ @buttons.include?(button) && !@game.button_down?(button)
30
+ end
31
+
32
+ def mouse_x
33
+ @game.mouse_x
34
+ end
35
+ def mouse_y
36
+ @game.mouse_y
37
+ end
38
+ def old_mouse_x
39
+ @old_mouse_x
40
+ end
41
+ def old_mouse_y
42
+ @old_mouse_y
43
+ end
44
+ def mouse_dif_x
45
+ mouse_x - old_mouse_x
46
+ end
47
+ def mouse_dif_y
48
+ mouse_y - old_mouse_y
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,4 @@
1
+ module Kawaii
2
+ class Intro
3
+ end
4
+ end
@@ -0,0 +1,5 @@
1
+ module Kawaii
2
+ module Math
3
+
4
+ end
5
+ end
@@ -0,0 +1,62 @@
1
+
2
+ module Kawaii
3
+ class Node
4
+ attr_accessor :position, :velocity, :rotation, :gravity, :static, :children
5
+
6
+ def initialize static = false, position = Vector2.new, velocity = Vector2.new, gravity = Kawaii::Vector2.new(0, Kawaii::GRAVITY)
7
+ @children = []
8
+ @rotation = 0.0
9
+ @position = position
10
+ @velocity = velocity
11
+ @gravity = gravity
12
+ @static = static
13
+ end
14
+
15
+ def count
16
+ sum = 1
17
+ @children.each do |child|
18
+ sum += child.count
19
+ end
20
+ sum
21
+ end
22
+
23
+ def add_child node
24
+ @children.push(node)
25
+ end
26
+
27
+ def remove_child node
28
+ @children.delete(node)
29
+ end
30
+
31
+ def has_children?
32
+ @children.size > 0
33
+ end
34
+
35
+ def update dt
36
+ if self.class.method_defined? :before_update
37
+ before_update dt
38
+ end
39
+
40
+ if !@static
41
+ @velocity.x += @gravity.x * dt
42
+ @velocity.y += @gravity.y * dt
43
+ @position.x += @velocity.x * dt
44
+ @position.y += @velocity.y * dt
45
+ end
46
+
47
+ @children.each do |child|
48
+ child.update dt
49
+ end
50
+
51
+ if self.class.method_defined? :after_update
52
+ after_update dt
53
+ end
54
+ end
55
+
56
+ def draw
57
+ @children.each do |child|
58
+ child.draw
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,35 @@
1
+
2
+ module Kawaii
3
+ class NodeManager
4
+
5
+ attr_accessor :nodes
6
+
7
+ def initialize
8
+ @nodes = []
9
+ end
10
+
11
+ def count
12
+ sum = 0
13
+ nodes.each do |node|
14
+ sum += node.count
15
+ end
16
+ sum
17
+ end
18
+
19
+ def update dt
20
+ nodes.each do |node|
21
+ node.update dt
22
+ end
23
+ end
24
+
25
+ def draw
26
+ nodes.each do |node|
27
+ node.draw
28
+ end
29
+ end
30
+
31
+ def clear
32
+ nodes.clear
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,32 @@
1
+ require 'chipmunk'
2
+
3
+ module Kawaii
4
+ class PhysicsEntity < Entity
5
+
6
+ attr_accessor :shape, :body, :geom
7
+
8
+ def initialize geom, args
9
+ @geom = geom
10
+ case geom
11
+ when :circle
12
+ create_circle(args[:radius])
13
+ when :rectangle
14
+ create_rectangle(args[:width], args[:height])
15
+ end
16
+ end
17
+
18
+ def add_to_space chipmunk_space
19
+ # TODO: check if body is static etc...
20
+ end
21
+
22
+ def remove_from_space chipmunk_space
23
+ end
24
+
25
+ protected
26
+ def create_circle radius
27
+ end
28
+
29
+ def create_rectangle width, height
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,27 @@
1
+ require 'chipmunk'
2
+
3
+ module Kawaii
4
+ class PhysicsManager
5
+
6
+ attr_accessor :space, :entities
7
+
8
+ def initialize
9
+ @space = CP::Space.new
10
+ @entities = []
11
+ end
12
+
13
+ def add_physics_entity entity
14
+ if entity.class == PhysicsEntity
15
+ @entities.push entity
16
+ entity.add_to_space @space
17
+ else
18
+ raise WrongTypeError, "Only PhysicsEntity and derivatives are accepted"
19
+ end
20
+ end
21
+
22
+ def remove_physics_entity entity
23
+ @entities.delete entity
24
+ entity.remove_from_space @space
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,21 @@
1
+ module Kawaii
2
+ class Scene
3
+ attr_accessor :name, :scene_manager
4
+
5
+ def initialize scene_manager
6
+ @scene_manager = scene_manager
7
+ end
8
+
9
+ def transition_in current, duration
10
+ end
11
+
12
+ def transition_out current, duration
13
+ end
14
+
15
+ def update dt
16
+ end
17
+
18
+ def draw
19
+ end
20
+ end
21
+ end