okami 0.0.0
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.
- data/lib/okami.rb +4 -0
- data/lib/okami/hit_mask.rb +20 -0
- data/lib/okami/image.rb +32 -0
- data/lib/okami/keyboard.rb +157 -0
- data/lib/okami/mouse.rb +106 -0
- data/lib/okami/mouse_trap.rb +16 -0
- data/lib/okami/operating_system.rb +19 -0
- data/lib/okami/sprite.rb +151 -0
- data/lib/okami/window.rb +59 -0
- metadata +75 -0
data/lib/okami.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
## The image of the hitmask, white is hitpoints, black is not
|
2
|
+
require 'texplay'
|
3
|
+
|
4
|
+
class Okami::HitMask
|
5
|
+
def initialize mask, parent
|
6
|
+
@hit_mask = mask
|
7
|
+
@parent = parent
|
8
|
+
end
|
9
|
+
|
10
|
+
def hit_point? x, y
|
11
|
+
c = @hit_mask.get_pixel( x - @parent.x, y - @parent.y )
|
12
|
+
return false unless c
|
13
|
+
return c[1] > 0.9 # quick 'n dirty
|
14
|
+
end
|
15
|
+
|
16
|
+
def hit_line x1, y1, x2, y2
|
17
|
+
hit_vertex = @hit_mask.line x1, y1, x2, y2, trace: { :until_color => :white, :tolerance => 0.1 }
|
18
|
+
hit_vertex || false
|
19
|
+
end
|
20
|
+
end
|
data/lib/okami/image.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
class Okami::Image < Gosu::Image
|
2
|
+
@tileable = true
|
3
|
+
@load_path = ""
|
4
|
+
|
5
|
+
class << self
|
6
|
+
attr_accessor :tileable, :load_path
|
7
|
+
|
8
|
+
Images = {}
|
9
|
+
ImageTiles = {}
|
10
|
+
|
11
|
+
def new path, tileable=@tileable, *src_rect
|
12
|
+
super $window, @load_path + path, tileable, *src_rect
|
13
|
+
end
|
14
|
+
alias load new
|
15
|
+
|
16
|
+
def load_tiles path, tile_width, tile_height, tileable=@tileable
|
17
|
+
super $window, @load_path + path, tile_width, tile_height, tileable
|
18
|
+
end
|
19
|
+
alias new_tiles load_tiles
|
20
|
+
|
21
|
+
## Require will only load the image the first time it is called.
|
22
|
+
def require path, tileable=@tileable, *src_rect
|
23
|
+
Images[ @load_path + path + src_rect.to_s ] ||= load path, tileable, *src_rect
|
24
|
+
end
|
25
|
+
alias [] require
|
26
|
+
|
27
|
+
def require_tiles path, tile_width, tile_height, tileable=@tileable
|
28
|
+
ImageTiles[ "size:#{tile_width},#{tile_height}&" + @load_path + path ] ||= load_tiles path, tile_width, tile_height, tileable
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,157 @@
|
|
1
|
+
require 'okami/operating_system'
|
2
|
+
|
3
|
+
module Okami::Keyboard
|
4
|
+
DefaultKeySymbols = {
|
5
|
+
Gosu::KbUp => :up,
|
6
|
+
Gosu::KbDown => :down,
|
7
|
+
Gosu::KbLeft => :left,
|
8
|
+
Gosu::KbRight => :right,
|
9
|
+
|
10
|
+
Gosu::KbSpace => :space,
|
11
|
+
Gosu::KbReturn => :return,
|
12
|
+
Gosu::KbBackspace => :backspace,
|
13
|
+
Gosu::KbLeftShift => :left_shift,
|
14
|
+
Gosu::KbRightShift => :right_shift,
|
15
|
+
Gosu::KbLeftControl => :left_ctrl,
|
16
|
+
Gosu::KbRightControl => :right_ctrl,
|
17
|
+
Gosu::KbEscape => :escape,
|
18
|
+
Gosu::KbLeftAlt => :left_alt,
|
19
|
+
Gosu::KbRightAlt => :right_alt,
|
20
|
+
Gosu::KbTab => :tab,
|
21
|
+
|
22
|
+
Gosu::Kb0 => 0,
|
23
|
+
Gosu::Kb1 => 1,
|
24
|
+
Gosu::Kb2 => 2,
|
25
|
+
Gosu::Kb3 => 3,
|
26
|
+
Gosu::Kb4 => 4,
|
27
|
+
Gosu::Kb5 => 5,
|
28
|
+
Gosu::Kb6 => 6,
|
29
|
+
Gosu::Kb7 => 7,
|
30
|
+
Gosu::Kb8 => 8,
|
31
|
+
Gosu::Kb9 => 9,
|
32
|
+
|
33
|
+
Gosu::KbF1 => :f1,
|
34
|
+
Gosu::KbF2 => :f2,
|
35
|
+
Gosu::KbF3 => :f3,
|
36
|
+
Gosu::KbF4 => :f4,
|
37
|
+
Gosu::KbF5 => :f5,
|
38
|
+
Gosu::KbF6 => :f6,
|
39
|
+
Gosu::KbF7 => :f7,
|
40
|
+
Gosu::KbF8 => :f8,
|
41
|
+
Gosu::KbF9 => :f9,
|
42
|
+
Gosu::KbF10 => :f10,
|
43
|
+
Gosu::KbF11 => :f11,
|
44
|
+
Gosu::KbF12 => :f12,
|
45
|
+
|
46
|
+
Gosu::KbA => :a,
|
47
|
+
Gosu::KbB => :b,
|
48
|
+
Gosu::KbC => :c,
|
49
|
+
Gosu::KbD => :d,
|
50
|
+
Gosu::KbE => :e,
|
51
|
+
Gosu::KbF => :f,
|
52
|
+
Gosu::KbG => :g,
|
53
|
+
Gosu::KbH => :h,
|
54
|
+
Gosu::KbI => :i,
|
55
|
+
Gosu::KbJ => :j,
|
56
|
+
Gosu::KbK => :k,
|
57
|
+
Gosu::KbL => :l,
|
58
|
+
Gosu::KbM => :m,
|
59
|
+
Gosu::KbN => :n,
|
60
|
+
Gosu::KbO => :o,
|
61
|
+
Gosu::KbP => :p,
|
62
|
+
Gosu::KbQ => :q,
|
63
|
+
Gosu::KbR => :r,
|
64
|
+
Gosu::KbS => :s,
|
65
|
+
Gosu::KbT => :t,
|
66
|
+
Gosu::KbU => :u,
|
67
|
+
Gosu::KbV => :v,
|
68
|
+
Gosu::KbW => :w,
|
69
|
+
Gosu::KbX => :x,
|
70
|
+
Gosu::KbY => :y,
|
71
|
+
Gosu::KbZ => :z
|
72
|
+
}
|
73
|
+
|
74
|
+
if OS.mac?
|
75
|
+
DefaultKeySymbols[55] = :left_cmd
|
76
|
+
DefaultKeySymbols[54] = :right_cmd
|
77
|
+
end
|
78
|
+
|
79
|
+
DefaultKeySymbols.freeze
|
80
|
+
|
81
|
+
@@key_symbols = DefaultKeySymbols.dup
|
82
|
+
@@key_down_listeners = {}
|
83
|
+
@@key_up_listeners = {}
|
84
|
+
|
85
|
+
class << self
|
86
|
+
def key_symbols; @@key_symbols end
|
87
|
+
def key_symbols= hash; @@key_symbols = hash end
|
88
|
+
|
89
|
+
def add_key_down_listener listener_method
|
90
|
+
@@key_down_listeners[ listener_method.receiver ] = listener_method
|
91
|
+
end
|
92
|
+
|
93
|
+
def add_key_up_listener listener_method
|
94
|
+
@@key_up_listeners[ listener_method.receiver ] = listener_method
|
95
|
+
end
|
96
|
+
|
97
|
+
def remove_key_up_listener listener
|
98
|
+
if listener.class == Method
|
99
|
+
key_up_listener = @@key_up_listeners.key listener
|
100
|
+
@@key_up_listeners.delete key_up_listener
|
101
|
+
else
|
102
|
+
@@key_up_listeners.delete listener
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
def remove_key_down_listener listener
|
107
|
+
if listener.class == Method
|
108
|
+
key_down_listener = @@key_down_listeners.key listener
|
109
|
+
@@key_down_listeners.delete key_down_listener
|
110
|
+
else
|
111
|
+
@@key_down_listeners.delete listener
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
def key_down? key_symbol
|
116
|
+
case key_symbol
|
117
|
+
when :any_key; any_key_down? *@@key_symbols.values
|
118
|
+
when :alt; any_key_down? :left_alt, :right_alt
|
119
|
+
when :shift; any_key_down? :left_shift, :right_shift
|
120
|
+
when :ctrl; any_key_down? :left_ctrl, :right_ctrl
|
121
|
+
when :cmd; any_key_down? :left_cmd, :right_cmd
|
122
|
+
else
|
123
|
+
$window.button_down? @@key_symbols.key( key_symbol )
|
124
|
+
end
|
125
|
+
|
126
|
+
end
|
127
|
+
|
128
|
+
## Returns true if all key_symbols is down
|
129
|
+
def keys_down? *key_symbols
|
130
|
+
key_symbols.each do |key_symbol|
|
131
|
+
return false unless key_down? key_symbol
|
132
|
+
end
|
133
|
+
return true
|
134
|
+
end
|
135
|
+
|
136
|
+
## Returns true if one of the key_symbols is down
|
137
|
+
def any_key_down? *key_symbols
|
138
|
+
key_symbols << :any_key if key_symbols.empty?
|
139
|
+
key_symbols.each do |key_symbol|
|
140
|
+
return true if key_down? key_symbol
|
141
|
+
end
|
142
|
+
return false
|
143
|
+
end
|
144
|
+
alias any_of_keys_down? any_key_down?
|
145
|
+
|
146
|
+
def button_down id
|
147
|
+
key = @@key_symbols[id]
|
148
|
+
@@key_down_listeners.each { |listener, method| method.call key } if key
|
149
|
+
end
|
150
|
+
|
151
|
+
def button_up id
|
152
|
+
key = @@key_symbols[id]
|
153
|
+
@@key_up_listeners.each { |listener, method| method.call key } if key
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
end
|
data/lib/okami/mouse.rb
ADDED
@@ -0,0 +1,106 @@
|
|
1
|
+
module Okami::Mouse
|
2
|
+
DefaultKeySymbols = {
|
3
|
+
Gosu::MsLeft => :left,
|
4
|
+
Gosu::MsRight => :right,
|
5
|
+
Gosu::MsMiddle => :middle,
|
6
|
+
Gosu::MsWheelUp => :wheel_up,
|
7
|
+
Gosu::MsWheelDown => :wheel_down
|
8
|
+
}.freeze
|
9
|
+
|
10
|
+
@@key_symbols = DefaultKeySymbols.dup
|
11
|
+
@@key_down_listeners = {}
|
12
|
+
@@key_up_listeners = {}
|
13
|
+
|
14
|
+
class << self
|
15
|
+
def key_symbols; @@key_symbols end
|
16
|
+
def key_symbols= hash; @@key_symbols = hash end
|
17
|
+
|
18
|
+
def x; $window.mouse_x end
|
19
|
+
def y; $window.mouse_y end
|
20
|
+
def x=value; $window.mouse_x = value end
|
21
|
+
def y=value; $window.mouse_y = value end
|
22
|
+
|
23
|
+
def onscreen?
|
24
|
+
if x > 0
|
25
|
+
if y > 0
|
26
|
+
if x < $window.width
|
27
|
+
if y < $window.height
|
28
|
+
return true
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
return false
|
35
|
+
end
|
36
|
+
|
37
|
+
def offscreen?
|
38
|
+
not onscreen?
|
39
|
+
end
|
40
|
+
|
41
|
+
def show; $window.cursor_visible = true end
|
42
|
+
def hide; $window.cursor_visible = false end
|
43
|
+
|
44
|
+
def add_key_down_listener listener_method
|
45
|
+
@@key_down_listeners[ listener_method.receiver ] = listener_method
|
46
|
+
end
|
47
|
+
|
48
|
+
def add_key_up_listener listener_method
|
49
|
+
@@key_up_listeners[ listener_method.receiver ] = listener_method
|
50
|
+
end
|
51
|
+
|
52
|
+
def remove_listener listener
|
53
|
+
case listener.class
|
54
|
+
when Method
|
55
|
+
key_up_listener = @@key_up_listeners.key listener
|
56
|
+
key_down_listener = @@key_down_listeners.key listener
|
57
|
+
|
58
|
+
@@key_up_listeners.delete key_up_listener
|
59
|
+
@@key_down_listeners.delete key_down_listener
|
60
|
+
else
|
61
|
+
@@key_down_listeners.delete listener
|
62
|
+
@@key_up_listeners.delete listener
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def key_down? key_symbol
|
67
|
+
case key_symbol
|
68
|
+
when :any_key; any_key_down? *@@key_symbols.values
|
69
|
+
else; $window.button_down? @@key_symbols.key( key_symbol )
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
## Returns true if all key_symbols is down
|
74
|
+
def keys_down? *key_symbols
|
75
|
+
key_symbols.each do |key_symbol|
|
76
|
+
return false unless key_down? key_symbol
|
77
|
+
end
|
78
|
+
return nil if key_symbols.empty?
|
79
|
+
return true
|
80
|
+
end
|
81
|
+
|
82
|
+
## Returns true if one of the key_symbols is down
|
83
|
+
def any_key_down? *key_symbols
|
84
|
+
key_symbols << :any_key if key_symbols.empty?
|
85
|
+
key_symbols.each do |key_symbol|
|
86
|
+
return true if key_down? key_symbol
|
87
|
+
end
|
88
|
+
return nil if key_symbols.empty?
|
89
|
+
return false
|
90
|
+
end
|
91
|
+
alias any_of_keys_down? any_key_down?
|
92
|
+
|
93
|
+
def button_down id
|
94
|
+
key = @@key_symbols[id]
|
95
|
+
return unless key
|
96
|
+
@@key_down_listeners.each { |listener, method| method.call key }
|
97
|
+
end
|
98
|
+
|
99
|
+
def button_up id
|
100
|
+
key = @@key_symbols[id]
|
101
|
+
return unless key
|
102
|
+
@@key_up_listeners.each { |listener, method| method.call key }
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Okami
|
2
|
+
MouseTrap = Struct.new(:captured)
|
3
|
+
class << MouseTrap
|
4
|
+
def capture
|
5
|
+
@captured ? false : @captured = true
|
6
|
+
end
|
7
|
+
|
8
|
+
def release
|
9
|
+
@captured = false
|
10
|
+
return true
|
11
|
+
end
|
12
|
+
|
13
|
+
def captured?; !!@captured end
|
14
|
+
def released?; !@captured end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module OS
|
2
|
+
@@system =
|
3
|
+
case RUBY_PLATFORM
|
4
|
+
when /darwin/i then :mac
|
5
|
+
when /mswin/i then :windows
|
6
|
+
when /linux/i then :linux
|
7
|
+
else :unknown
|
8
|
+
end
|
9
|
+
|
10
|
+
class << self
|
11
|
+
def system; @@system end
|
12
|
+
def to_sym; @@system end
|
13
|
+
def to_s; @@system.to_s.capitalize end
|
14
|
+
def mac?; @@system == :mac end
|
15
|
+
def windows?; @@system == :windows end
|
16
|
+
def linux?; @@system == :linux end
|
17
|
+
def unknown?; @@system == :unknown end
|
18
|
+
end
|
19
|
+
end
|
data/lib/okami/sprite.rb
ADDED
@@ -0,0 +1,151 @@
|
|
1
|
+
class Okami::Sprite
|
2
|
+
Modes = [:forward, :loop, :backward, :backward_loop, :ping_pong]
|
3
|
+
|
4
|
+
attr_reader :current_image, :images, :last_frame_index
|
5
|
+
|
6
|
+
def initialize options={}
|
7
|
+
@images = options[:images]
|
8
|
+
|
9
|
+
@last_frame_index = @images.length - 1
|
10
|
+
@add = ( options[:fps] || 0 ) / 60.0
|
11
|
+
self.mode = options[:mode] || :loop
|
12
|
+
|
13
|
+
case @direction
|
14
|
+
when :forward then @frame_index = 0
|
15
|
+
when :backward then @frame_index = @last_frame_index+0.99
|
16
|
+
end
|
17
|
+
|
18
|
+
update_current_image
|
19
|
+
end
|
20
|
+
|
21
|
+
def fps; @add * 60 end
|
22
|
+
def fps= fps; @add = fps / 60.0 end
|
23
|
+
|
24
|
+
attr_reader :frame_index
|
25
|
+
def frame_index= i
|
26
|
+
@frame_index = i
|
27
|
+
@frame_index = @last_frame_index if @frame_index > @last_frame_index
|
28
|
+
@frame_index = 0 if @frame_index < 0
|
29
|
+
update_current_image
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
## Draw it just like a Gosu::Image !
|
34
|
+
def draw *args; @current_image.draw *args end
|
35
|
+
def draw_as_quad *args; @current_image.draw_as_quad *args end
|
36
|
+
def draw_rot *args; @current_image.draw_rot *args end
|
37
|
+
|
38
|
+
|
39
|
+
def update
|
40
|
+
case @direction
|
41
|
+
when :forward then @frame_index += @add
|
42
|
+
when :backward then @frame_index -= @add
|
43
|
+
end
|
44
|
+
|
45
|
+
@update_method.call
|
46
|
+
update_current_image
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
def finished?
|
51
|
+
case @mode
|
52
|
+
when :forward; @frame_index == @last_frame_index
|
53
|
+
when :backward; @frame_index == 0
|
54
|
+
end
|
55
|
+
end
|
56
|
+
alias animation_finished? finished?
|
57
|
+
|
58
|
+
attr_reader :mode
|
59
|
+
def mode= symbol
|
60
|
+
|
61
|
+
case symbol
|
62
|
+
when :loop
|
63
|
+
@direction = :forward
|
64
|
+
use_update method :update_loop
|
65
|
+
|
66
|
+
when :backward_loop
|
67
|
+
@direction = :backward
|
68
|
+
use_update method :update_backward_loop
|
69
|
+
|
70
|
+
when :forward
|
71
|
+
@direction = :forward
|
72
|
+
use_update method :update_forward
|
73
|
+
|
74
|
+
when :backward
|
75
|
+
@direction = :backward
|
76
|
+
use_update method :update_backward
|
77
|
+
|
78
|
+
when :ping_pong
|
79
|
+
@direction ||= :forward
|
80
|
+
use_update method :update_ping_pong
|
81
|
+
|
82
|
+
else
|
83
|
+
puts "Supported AnimatedSprite modes:"
|
84
|
+
puts self.class.modes
|
85
|
+
raise ArgumentError, "AnimatedSprite, mode #{symbol.inspect} not supported"
|
86
|
+
end
|
87
|
+
|
88
|
+
@mode = symbol
|
89
|
+
end
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
protected
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
def use_update method; @update_method = method end
|
98
|
+
|
99
|
+
def update_current_image
|
100
|
+
@current_image = @images[ @frame_index ]
|
101
|
+
end
|
102
|
+
|
103
|
+
def update_forward
|
104
|
+
@frame_index = @last_frame_index if @frame_index > @last_frame_index
|
105
|
+
end
|
106
|
+
|
107
|
+
def update_loop
|
108
|
+
@frame_index = 0 if @frame_index >= @last_frame_index
|
109
|
+
end
|
110
|
+
|
111
|
+
def update_backward
|
112
|
+
@frame_index = 0 if @frame_index < 0
|
113
|
+
end
|
114
|
+
|
115
|
+
def update_backward_loop
|
116
|
+
@frame_index = @last_frame_index+0.99 if @frame_index < 0
|
117
|
+
end
|
118
|
+
|
119
|
+
def update_ping_pong
|
120
|
+
case @direction
|
121
|
+
when :forward
|
122
|
+
if @frame_index >= @last_frame_index
|
123
|
+
@direction = :backward
|
124
|
+
@frame_index = @last_frame_index
|
125
|
+
end
|
126
|
+
|
127
|
+
when :backward
|
128
|
+
if @frame_index < 0
|
129
|
+
@frame_index = 1
|
130
|
+
@direction = :forward
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
=begin
|
138
|
+
## Example ##
|
139
|
+
a = AnimatedSprite.new images: [1, 2, 3, 4, 5, 6, 7, 8], fps: 60, :mode => :forward
|
140
|
+
loop do
|
141
|
+
#if rand(10) == 1
|
142
|
+
# modes = AnimatedSprite.modes
|
143
|
+
# a.mode = modes[rand(modes.length)]
|
144
|
+
# puts a.mode
|
145
|
+
#end
|
146
|
+
p a.current_image
|
147
|
+
p a.finished?
|
148
|
+
a.update
|
149
|
+
sleep 0.3
|
150
|
+
end
|
151
|
+
=end
|
data/lib/okami/window.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
module Okami
|
2
|
+
def self.method_missing *args
|
3
|
+
Gosu.send *args
|
4
|
+
end
|
5
|
+
|
6
|
+
def self.const_missing const
|
7
|
+
Gosu.const_get const
|
8
|
+
end
|
9
|
+
|
10
|
+
class Window < Gosu::Window
|
11
|
+
include Gosu
|
12
|
+
include Okami
|
13
|
+
attr_accessor :cursor_visible
|
14
|
+
|
15
|
+
def initialize *args
|
16
|
+
@prev_t = Gosu::milliseconds
|
17
|
+
$window = super *args
|
18
|
+
end
|
19
|
+
|
20
|
+
def show_cursor; @cursor_visible = true end
|
21
|
+
def hide_cursor; @cursor_visible = false end
|
22
|
+
def needs_cursor?; @cursor_visible end
|
23
|
+
|
24
|
+
def button_down id
|
25
|
+
Okami::Keyboard.button_down id
|
26
|
+
Okami::Mouse.button_down id
|
27
|
+
end
|
28
|
+
|
29
|
+
def button_up id
|
30
|
+
Okami::Keyboard.button_up id
|
31
|
+
Okami::Mouse.button_up id
|
32
|
+
end
|
33
|
+
|
34
|
+
def retrofy
|
35
|
+
Gosu::enable_undocumented_retrofication \
|
36
|
+
rescue puts "Unable to use Gosu::enable_undocumented_retrofication"
|
37
|
+
end
|
38
|
+
|
39
|
+
def calculate_dt
|
40
|
+
@t = Gosu::milliseconds
|
41
|
+
@dt = (@t-@prev_t)/1000.0
|
42
|
+
@prev_t = @t
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.inherited(subclass)
|
46
|
+
def subclass.method_added(name)
|
47
|
+
if name == :update
|
48
|
+
return if caller.first.match(/^(.+?):(\d+)(?::in `(.*)')?/)[1].match /eval/i
|
49
|
+
class_eval "def update_hook\n calculate_dt\n update_without_hook\nend"
|
50
|
+
class_eval "alias update_without_hook update"
|
51
|
+
class_eval "alias update update_hook"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
metadata
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: okami
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Bue Grønlund
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-03-12 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: gosu
|
16
|
+
requirement: &70258649056920 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70258649056920
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: texplay
|
27
|
+
requirement: &70258649056300 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70258649056300
|
36
|
+
description: Gosu Interface with fancy functionality for simplicity.
|
37
|
+
email: aerotune@gmail.com
|
38
|
+
executables: []
|
39
|
+
extensions: []
|
40
|
+
extra_rdoc_files: []
|
41
|
+
files:
|
42
|
+
- lib/okami.rb
|
43
|
+
- lib/okami/window.rb
|
44
|
+
- lib/okami/keyboard.rb
|
45
|
+
- lib/okami/mouse.rb
|
46
|
+
- lib/okami/mouse_trap.rb
|
47
|
+
- lib/okami/image.rb
|
48
|
+
- lib/okami/hit_mask.rb
|
49
|
+
- lib/okami/sprite.rb
|
50
|
+
- lib/okami/operating_system.rb
|
51
|
+
homepage: https://github.com/Aerotune/Okami
|
52
|
+
licenses: []
|
53
|
+
post_install_message:
|
54
|
+
rdoc_options: []
|
55
|
+
require_paths:
|
56
|
+
- lib
|
57
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
64
|
+
none: false
|
65
|
+
requirements:
|
66
|
+
- - ! '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
requirements: []
|
70
|
+
rubyforge_project:
|
71
|
+
rubygems_version: 1.8.10
|
72
|
+
signing_key:
|
73
|
+
specification_version: 3
|
74
|
+
summary: Okami minimal Gosu!
|
75
|
+
test_files: []
|