gosu 0.7.36-i386-mingw32 → 0.7.36.1-i386-mingw32
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/Gosu/Version.hpp +1 -1
- data/lib/gosu/patches.rb +75 -0
- data/lib/gosu/preview.rb +116 -0
- data/lib/gosu/run.rb +11 -0
- data/lib/gosu/swig_patches.rb +43 -0
- data/lib/gosu/zen.rb +28 -0
- metadata +9 -3
data/Gosu/Version.hpp
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
#define GOSU_MAJOR_VERSION 0
|
5
5
|
#define GOSU_MINOR_VERSION 7
|
6
6
|
#define GOSU_POINT_VERSION 36
|
7
|
-
#define GOSU_VERSION "0.7.36"
|
7
|
+
#define GOSU_VERSION "0.7.36.1"
|
8
8
|
|
9
9
|
#define GOSU_COPYRIGHT_NOTICE \
|
10
10
|
"May contain `ogg', `vorbis' libraries (c) 2002-2008 Xiph.org Foundation" \
|
data/lib/gosu/patches.rb
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
# Extend Numeric with simple angle conversion methods.
|
2
|
+
class ::Numeric
|
3
|
+
def degrees_to_radians
|
4
|
+
self * Math::PI / 180.0
|
5
|
+
end
|
6
|
+
def radians_to_degrees
|
7
|
+
self * 180.0 / Math::PI
|
8
|
+
end
|
9
|
+
def gosu_to_radians
|
10
|
+
(self - 90) * Math::PI / 180.0
|
11
|
+
end
|
12
|
+
def radians_to_gosu
|
13
|
+
self * 180.0 / Math::PI + 90
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
# Backwards compatibility: import constants into Gosu::Button.
|
18
|
+
module Gosu::Button
|
19
|
+
Gosu.constants.each { |c| const_set(c, Gosu.const_get(c)) }
|
20
|
+
end
|
21
|
+
|
22
|
+
# Backwards compatibility: Window arguments to Sample and Song
|
23
|
+
class Gosu::Sample
|
24
|
+
alias initialize_ initialize
|
25
|
+
|
26
|
+
def initialize(*args)
|
27
|
+
args.shift if args.first.is_a? Gosu::Window
|
28
|
+
initialize_(*args)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
class Gosu::Song
|
32
|
+
alias initialize_ initialize
|
33
|
+
|
34
|
+
def initialize(*args)
|
35
|
+
args.shift if args.first.is_a? Gosu::Window
|
36
|
+
initialize_(*args)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# Color constants (SWIG messes up constants somehow)
|
41
|
+
class Gosu::Color
|
42
|
+
class Constant < Gosu::Color
|
43
|
+
private
|
44
|
+
def alpha=; end
|
45
|
+
def red=; end
|
46
|
+
def green=; end
|
47
|
+
def blue=; end
|
48
|
+
def hue=; end
|
49
|
+
def saturation=; end
|
50
|
+
def value=; end
|
51
|
+
end
|
52
|
+
|
53
|
+
NONE = Gosu::Color::Constant.argb(0x00000000)
|
54
|
+
BLACK = Gosu::Color::Constant.argb(0xff000000)
|
55
|
+
GRAY = Gosu::Color::Constant.argb(0xff808080)
|
56
|
+
WHITE = Gosu::Color::Constant.argb(0xffffffff)
|
57
|
+
AQUA = Gosu::Color::Constant.argb(0xff00ffff)
|
58
|
+
RED = Gosu::Color::Constant.argb(0xffff0000)
|
59
|
+
GREEN = Gosu::Color::Constant.argb(0xff00ff00)
|
60
|
+
BLUE = Gosu::Color::Constant.argb(0xff0000ff)
|
61
|
+
YELLOW = Gosu::Color::Constant.argb(0xffffff00)
|
62
|
+
FUCHSIA = Gosu::Color::Constant.argb(0xffff00ff)
|
63
|
+
CYAN = Gosu::Color::Constant.argb(0xff00ffff)
|
64
|
+
end
|
65
|
+
|
66
|
+
# Instance methods for button_id_to_char and char_to_button_id
|
67
|
+
class Gosu::Window
|
68
|
+
def button_id_to_char(id)
|
69
|
+
self.class.button_id_to_char(id)
|
70
|
+
end
|
71
|
+
|
72
|
+
def char_to_button_id(ch)
|
73
|
+
self.class.char_to_button_id(ch)
|
74
|
+
end
|
75
|
+
end
|
data/lib/gosu/preview.rb
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
require 'gosu'
|
2
|
+
|
3
|
+
# Wrapper around Gosu 0.7 that provides the work-in-progress 0.8 interface
|
4
|
+
|
5
|
+
module Gosu
|
6
|
+
class Font
|
7
|
+
alias :initialize07 :initialize
|
8
|
+
|
9
|
+
def initialize *args
|
10
|
+
if args.first.is_a? Gosu::Window then
|
11
|
+
initialize07 *args
|
12
|
+
else
|
13
|
+
height = args[0]
|
14
|
+
options = args[1] || {}
|
15
|
+
name = options[:name] || Gosu::default_font_name
|
16
|
+
initialize07 $window, name, height
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class Window
|
22
|
+
alias :initialize07 :initialize
|
23
|
+
|
24
|
+
def initialize width, height, *args
|
25
|
+
if args.empty? or args.first.is_a? Hash then
|
26
|
+
options = args.first || {}
|
27
|
+
fullscreen = !!options[:fullscreen]
|
28
|
+
update_interval = options[:update_interval] || 16.66
|
29
|
+
else
|
30
|
+
fullscreen, update_interval = *args
|
31
|
+
end
|
32
|
+
$window = initialize07 width, height, fullscreen, update_interval
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
class Image
|
37
|
+
alias :initialize07 :initialize
|
38
|
+
|
39
|
+
def initialize *args
|
40
|
+
if args.first.is_a? Gosu::Window then
|
41
|
+
initialize07 *args
|
42
|
+
else
|
43
|
+
source = args[0]
|
44
|
+
tileable = !args[1] || args[1][:tileable]
|
45
|
+
initialize07 $window, source, !!tileable
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
class <<self
|
50
|
+
alias load_tiles07 load_tiles
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.load_tiles *args
|
54
|
+
if args.first.is_a? Gosu::Window then
|
55
|
+
load_tiles07 *args
|
56
|
+
else
|
57
|
+
source = args[0]
|
58
|
+
x, y = args[1..2]
|
59
|
+
tileable = !args[3] || args[3][:tileable]
|
60
|
+
load_tiles07 $window, source, x, y, !!tileable
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def self.from_text *args
|
65
|
+
if args.first.is_a? Gosu::Window then
|
66
|
+
args.size == 4 ? from_text4(*args) : from_text7(*args)
|
67
|
+
else
|
68
|
+
text = args[0]
|
69
|
+
height = args[1]
|
70
|
+
options = args[2] || {}
|
71
|
+
font = options[:font] || Gosu::default_font_name
|
72
|
+
if width = options[:width] then
|
73
|
+
spacing = options[:spacing] || 0
|
74
|
+
align = options[:align] || :left
|
75
|
+
Gosu::Image.from_text7 $window, text, font, height, spacing, width, align
|
76
|
+
else
|
77
|
+
Gosu::Image.from_text4 $window, text, font, height
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
def self.draw_quad *args
|
84
|
+
$window.draw_quad *args
|
85
|
+
end
|
86
|
+
|
87
|
+
def self.clip_to *args
|
88
|
+
$window.clip_to *args do
|
89
|
+
yield
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
def self.translate *args
|
94
|
+
$window.translate *args do
|
95
|
+
yield
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
def self.scale *args
|
100
|
+
$window.scale *args do
|
101
|
+
yield
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def self.rotate *args
|
106
|
+
$window.rotate *args do
|
107
|
+
yield
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
def self.transform *args
|
112
|
+
$window.transform *args do
|
113
|
+
yield
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
data/lib/gosu/run.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# Replace the load path
|
2
|
+
$LOAD_PATH.clear
|
3
|
+
$LOAD_PATH << File.dirname(__FILE__)[0..-6]
|
4
|
+
$LOAD_PATH << $LOAD_PATH[0] + '/lib'
|
5
|
+
# Ruby portions of Gosu
|
6
|
+
require 'gosu/patches'
|
7
|
+
require 'gosu/swig_patches'
|
8
|
+
# Let the application know it is being run from the Mac app wrapper.
|
9
|
+
OSX_EXECUTABLE = true
|
10
|
+
# Main application
|
11
|
+
require 'Main'
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# SWIG workarounds
|
2
|
+
# These are offloaded into a separate file because rb_eval_string() is weird on Ruby 1.8.
|
3
|
+
|
4
|
+
# Exceptions in Window callbacks often get lost, this is especially annoying in draw/update.
|
5
|
+
# It is not clear whether this is a SWIG issue or if some stack frame is not exception
|
6
|
+
# compatible, but I just call protected_update etc. in the Ruby wrapper so I can add this
|
7
|
+
# custom debugging help:
|
8
|
+
class Gosu::Window
|
9
|
+
%w(update draw needs_redraw? needs_cursor?
|
10
|
+
lose_focus button_down button_up).each do |callback|
|
11
|
+
define_method "protected_#{callback}" do |*args|
|
12
|
+
begin
|
13
|
+
# Turn into a boolean result for needs_cursor? etc while we are at it.
|
14
|
+
# If there has been an exception, don't do anything as to not make matters worse.
|
15
|
+
defined?(@_exception) ? false : !!send(callback, *args)
|
16
|
+
rescue Exception => e
|
17
|
+
# Exit the message loop naturally, then re-throw
|
18
|
+
@_exception = e
|
19
|
+
close
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
alias show_internal show
|
25
|
+
def show
|
26
|
+
show_internal
|
27
|
+
# Try to format the message nicely, without any useless patching that we are
|
28
|
+
# doing here.
|
29
|
+
if defined? @_exception then
|
30
|
+
if @_exception.backtrace.is_a? Array and not @_exception.backtrace.frozen? then
|
31
|
+
@_exception.backtrace.reject! { |line| line.include? 'lib/gosu/swig_patches.rb' }
|
32
|
+
end
|
33
|
+
raise @_exception
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# SWIG doesn't understand the C++ overloading, so we need this simple check in Ruby.
|
39
|
+
class Gosu::Image
|
40
|
+
def self.from_text(*args)
|
41
|
+
args.size == 4 ? from_text4(*args) : from_text7(*args)
|
42
|
+
end
|
43
|
+
end
|
data/lib/gosu/zen.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'gosu'
|
2
|
+
require 'singleton'
|
3
|
+
|
4
|
+
module Gosu
|
5
|
+
class ZenWindow < Window
|
6
|
+
include Singleton
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
super 800, 600, false
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def set what, value
|
15
|
+
Gosu::ZenWindow.instance.send "#{what}=", value
|
16
|
+
end
|
17
|
+
|
18
|
+
def update(&proc)
|
19
|
+
Gosu::ZenWindow.send :define_method, :update, proc
|
20
|
+
end
|
21
|
+
|
22
|
+
# WIP - needs all other callbacks, even with arguments
|
23
|
+
|
24
|
+
# WIP - needs to be compatible with gosu/preview.rb later
|
25
|
+
|
26
|
+
at_exit do
|
27
|
+
Gosu::ZenWindow.instance.show
|
28
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gosu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 229
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 7
|
9
9
|
- 36
|
10
|
-
|
10
|
+
- 1
|
11
|
+
version: 0.7.36.1
|
11
12
|
platform: i386-mingw32
|
12
13
|
authors:
|
13
14
|
- Julian Raschke
|
@@ -59,6 +60,11 @@ files:
|
|
59
60
|
- Gosu/Version.hpp
|
60
61
|
- Gosu/Window.hpp
|
61
62
|
- Gosu/WinUtility.hpp
|
63
|
+
- lib/gosu/patches.rb
|
64
|
+
- lib/gosu/preview.rb
|
65
|
+
- lib/gosu/run.rb
|
66
|
+
- lib/gosu/swig_patches.rb
|
67
|
+
- lib/gosu/zen.rb
|
62
68
|
- lib/gosu.rb
|
63
69
|
- examples/ChipmunkIntegration.rb
|
64
70
|
- examples/CptnRuby.rb
|
@@ -118,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
124
|
requirements: []
|
119
125
|
|
120
126
|
rubyforge_project:
|
121
|
-
rubygems_version: 1.8.
|
127
|
+
rubygems_version: 1.8.9
|
122
128
|
signing_key:
|
123
129
|
specification_version: 3
|
124
130
|
summary: 2D game development library.
|