rubygame 2.3.0-x86-mswin32-60
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/CREDITS +60 -0
- data/LICENSE +504 -0
- data/NEWS +252 -0
- data/README +123 -0
- data/ROADMAP +109 -0
- data/Rakefile +440 -0
- data/doc/extended_readme.rdoc +49 -0
- data/doc/getting_started.rdoc +47 -0
- data/doc/macosx_install.rdoc +70 -0
- data/doc/windows_install.rdoc +123 -0
- data/ext/rubygame/rubygame_core.so +0 -0
- data/ext/rubygame/rubygame_event.c +644 -0
- data/ext/rubygame/rubygame_event.h +48 -0
- data/ext/rubygame/rubygame_event.obj +0 -0
- data/ext/rubygame/rubygame_gfx.c +942 -0
- data/ext/rubygame/rubygame_gfx.h +101 -0
- data/ext/rubygame/rubygame_gfx.obj +0 -0
- data/ext/rubygame/rubygame_gfx.so +0 -0
- data/ext/rubygame/rubygame_gl.c +154 -0
- data/ext/rubygame/rubygame_gl.h +32 -0
- data/ext/rubygame/rubygame_gl.obj +0 -0
- data/ext/rubygame/rubygame_image.c +252 -0
- data/ext/rubygame/rubygame_image.h +41 -0
- data/ext/rubygame/rubygame_image.obj +0 -0
- data/ext/rubygame/rubygame_image.so +0 -0
- data/ext/rubygame/rubygame_joystick.c +247 -0
- data/ext/rubygame/rubygame_joystick.h +41 -0
- data/ext/rubygame/rubygame_joystick.obj +0 -0
- data/ext/rubygame/rubygame_main.c +155 -0
- data/ext/rubygame/rubygame_main.h +36 -0
- data/ext/rubygame/rubygame_main.obj +0 -0
- data/ext/rubygame/rubygame_mixer.c +1024 -0
- data/ext/rubygame/rubygame_mixer.h +36 -0
- data/ext/rubygame/rubygame_mixer.obj +0 -0
- data/ext/rubygame/rubygame_mixer.so +0 -0
- data/ext/rubygame/rubygame_music.c +1017 -0
- data/ext/rubygame/rubygame_music.h +29 -0
- data/ext/rubygame/rubygame_music.obj +0 -0
- data/ext/rubygame/rubygame_screen.c +448 -0
- data/ext/rubygame/rubygame_screen.h +43 -0
- data/ext/rubygame/rubygame_screen.obj +0 -0
- data/ext/rubygame/rubygame_shared.c +272 -0
- data/ext/rubygame/rubygame_shared.h +68 -0
- data/ext/rubygame/rubygame_shared.obj +0 -0
- data/ext/rubygame/rubygame_sound.c +863 -0
- data/ext/rubygame/rubygame_sound.h +29 -0
- data/ext/rubygame/rubygame_sound.obj +0 -0
- data/ext/rubygame/rubygame_surface.c +1151 -0
- data/ext/rubygame/rubygame_surface.h +62 -0
- data/ext/rubygame/rubygame_surface.obj +0 -0
- data/ext/rubygame/rubygame_time.c +183 -0
- data/ext/rubygame/rubygame_time.h +32 -0
- data/ext/rubygame/rubygame_time.obj +0 -0
- data/ext/rubygame/rubygame_ttf.c +599 -0
- data/ext/rubygame/rubygame_ttf.h +69 -0
- data/ext/rubygame/rubygame_ttf.obj +0 -0
- data/ext/rubygame/rubygame_ttf.so +0 -0
- data/lib/rubygame.rb +41 -0
- data/lib/rubygame/clock.rb +128 -0
- data/lib/rubygame/color.rb +79 -0
- data/lib/rubygame/color/models/base.rb +111 -0
- data/lib/rubygame/color/models/hsl.rb +153 -0
- data/lib/rubygame/color/models/hsv.rb +149 -0
- data/lib/rubygame/color/models/rgb.rb +78 -0
- data/lib/rubygame/color/palettes/css.rb +49 -0
- data/lib/rubygame/color/palettes/palette.rb +100 -0
- data/lib/rubygame/color/palettes/x11.rb +177 -0
- data/lib/rubygame/constants.rb +238 -0
- data/lib/rubygame/event.rb +313 -0
- data/lib/rubygame/ftor.rb +370 -0
- data/lib/rubygame/hotspot.rb +265 -0
- data/lib/rubygame/keyconstants.rb +237 -0
- data/lib/rubygame/mediabag.rb +94 -0
- data/lib/rubygame/named_resource.rb +254 -0
- data/lib/rubygame/queue.rb +288 -0
- data/lib/rubygame/rect.rb +612 -0
- data/lib/rubygame/sfont.rb +223 -0
- data/lib/rubygame/sprite.rb +511 -0
- data/samples/FreeSans.ttf +0 -0
- data/samples/GPL.txt +340 -0
- data/samples/README +40 -0
- data/samples/chimp.bmp +0 -0
- data/samples/chimp.rb +302 -0
- data/samples/demo_gl.rb +151 -0
- data/samples/demo_gl_tex.rb +197 -0
- data/samples/demo_music.rb +77 -0
- data/samples/demo_rubygame.rb +296 -0
- data/samples/demo_sfont.rb +52 -0
- data/samples/demo_ttf.rb +193 -0
- data/samples/demo_utf8.rb +53 -0
- data/samples/fist.bmp +0 -0
- data/samples/load_and_blit.rb +22 -0
- data/samples/panda.png +0 -0
- data/samples/punch.wav +0 -0
- data/samples/ruby.png +0 -0
- data/samples/song.ogg +0 -0
- data/samples/term16.png +0 -0
- data/samples/whiff.wav +0 -0
- metadata +164 -0
data/NEWS
ADDED
@@ -0,0 +1,252 @@
|
|
1
|
+
= NEWS
|
2
|
+
|
3
|
+
== Rubygame 2.3.0
|
4
|
+
|
5
|
+
Release focus: Media resources.
|
6
|
+
|
7
|
+
=== Features
|
8
|
+
|
9
|
+
- Add: Rubygame::NamedResource mixin module
|
10
|
+
- Provides per-class resource repository and on-demand auto-loading
|
11
|
+
behavior.
|
12
|
+
|
13
|
+
- Add: Rubygame::Music class.
|
14
|
+
- Intended as a full replacement for Rubygame::Mixer::Music.
|
15
|
+
- Includes NamedResources mixin.
|
16
|
+
- NOTE: Requires SDL_mixer support.
|
17
|
+
|
18
|
+
- Add: Rubygame::Sound class.
|
19
|
+
- Intended as a full replacement for Rubygame::Mixer::Sample.
|
20
|
+
- Includes NamedResources mixin.
|
21
|
+
- NOTE: Requires SDL_mixer support.
|
22
|
+
|
23
|
+
- Update: Rubygame::Surface class.
|
24
|
+
- Includes NamedResources mixin.
|
25
|
+
- Add: Surface.load_from_string (NOTE: Requires SDL_image support.)
|
26
|
+
|
27
|
+
=== Fixes
|
28
|
+
|
29
|
+
- ColorBase had been accidently placed in the top level namespace in
|
30
|
+
Rubygame 2.2.0. It is now correctly placed in the Rubygame::Color
|
31
|
+
module.
|
32
|
+
|
33
|
+
=== Other Stuff
|
34
|
+
|
35
|
+
- Deprecation (will be removed in Rubygame 3.0):
|
36
|
+
- Rubygame::Mixer module and methods are deprecated.
|
37
|
+
- Rubygame::Mixer::Music class is deprecated.
|
38
|
+
Use Rubygame::Music class instead.
|
39
|
+
- Rubygame::Mixer::Sample class is deprecated.
|
40
|
+
Use Rubygame::Sound class instead.
|
41
|
+
- Rubygame::Surface.load_image is deprecated.
|
42
|
+
Use Rubygame::Surface.load instead.
|
43
|
+
|
44
|
+
- NOTE: Run ruby with -w flag or set $_v = true to enable run-time
|
45
|
+
deprecation warnings.
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
== Rubygame 2.2.0
|
51
|
+
|
52
|
+
Release focus: Colors.
|
53
|
+
|
54
|
+
=== Features
|
55
|
+
|
56
|
+
- Add: Rubygame::Color module
|
57
|
+
- ColorRGB, ColorHSV, and ColorHSL classes.
|
58
|
+
- X11 and CSS palettes of pre-defined colors.
|
59
|
+
- Surface methods can accept ColorRGB etc. for colors.
|
60
|
+
- Automatic lookup of color names when a string or symbol
|
61
|
+
is passed for a color to Surface methods.
|
62
|
+
- Add: Surface#set_at().
|
63
|
+
|
64
|
+
- Add: Screen#icon=().
|
65
|
+
|
66
|
+
=== Bug Fixes
|
67
|
+
|
68
|
+
- Fix: Surface#draw_arc was incorrectly documented as Surface#draw_pie
|
69
|
+
|
70
|
+
=== Improvements
|
71
|
+
|
72
|
+
- Rect#collide_rect? is now faster.
|
73
|
+
- Sprites::Group#collide_group can take a block; arguments are deprecated.
|
74
|
+
|
75
|
+
=== Other Stuff
|
76
|
+
|
77
|
+
- Build system correctly recompiles if source has changed.
|
78
|
+
- Build system option syntax has changed. See the README: Advanced Install.
|
79
|
+
- Build system will correctly exit with an error status if it can't compile;
|
80
|
+
fixes Rubygems trying to install even when compile failed.
|
81
|
+
|
82
|
+
=== Acknowledgements
|
83
|
+
|
84
|
+
- Michael Swiger (mokkan) for Screen#icon=.
|
85
|
+
- ippa for optimizing Rect#collide_rect?.
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
== Rubygame 2.1.0
|
91
|
+
|
92
|
+
=== Features
|
93
|
+
|
94
|
+
- Add: Mixer::Music module.
|
95
|
+
- Add: Mixer.driver_name method.
|
96
|
+
- Add: Depth sorting for sprites.
|
97
|
+
- Add: Sprite#undraw.
|
98
|
+
- Add: TTF#size_utf8 and TTF#size_unicode.
|
99
|
+
- Add: Rubygame.key_name.
|
100
|
+
|
101
|
+
=== Bug Fixes
|
102
|
+
|
103
|
+
- Fix: Bug with dirty rectangles in UpdateGroup.
|
104
|
+
- Fix: Incorrect docs for joy-hat direction value.
|
105
|
+
- Fix: Segfaults when Joysticks are garbage-collected after Rubygame has quit.
|
106
|
+
- Fix: Segfaults when using Surface#convert, #to_display, or #to_display_alpha
|
107
|
+
when no video mode has been set.
|
108
|
+
- Fix: Surface#get_at returning [0,0,0,0] when it shouldn't.
|
109
|
+
- Fix: Sprites::Group#collide_group behaving incorrectly (again).
|
110
|
+
- Fix: Build system doesn't correctly handle quoted spaces in --cflags/--lflags.
|
111
|
+
(NOTE: Use CFLAGS/LDFLAGS environment variables now, instead.)
|
112
|
+
|
113
|
+
=== Known Issues
|
114
|
+
|
115
|
+
- Build system won't detect changed source files and recompile as necessary;
|
116
|
+
you must "rake clobber build" after a change.
|
117
|
+
|
118
|
+
=== Other Stuff
|
119
|
+
|
120
|
+
- Added argument checks to several Rect methods.
|
121
|
+
- Surfaces can be created with no Screen mode set.
|
122
|
+
- Mixer.open_audio has default values.
|
123
|
+
- TTF style getting/setting refactored under the hood.
|
124
|
+
- Added demo_music.rb and a sample song.ogg to try out music.
|
125
|
+
|
126
|
+
=== Acknowledgements
|
127
|
+
|
128
|
+
- Johan Berntsson for adding Mixer::Music.
|
129
|
+
- Daniel Neis Araujo for adding Sprite#undraw.
|
130
|
+
- Roger Ostrander (denor) for and bug fixes and adding Rubygame.key_name.
|
131
|
+
- Bjorn De Meyer (beoran) for numerous patches and improvements.
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
== Rubygame 2.0.1
|
137
|
+
|
138
|
+
=== Bug Fixes
|
139
|
+
|
140
|
+
- Fix: Segfaults in several C methods when passed an unexpected argument type.
|
141
|
+
- Fix: Segfaults in Screen#update and Screen#update_rects when the Rect(s)
|
142
|
+
extended out of the Screen bounds.
|
143
|
+
- Fix: Ftor#magnitude= behaving incorrectly.
|
144
|
+
- Fix: Rect#clip! behaving incorrectly.
|
145
|
+
- Fix: Sprites::Group#collide_group behaving incorrectly.
|
146
|
+
- Fix: Surface#savebmp wanting too many arguments.
|
147
|
+
|
148
|
+
=== Other Stuff
|
149
|
+
|
150
|
+
- Argument handling for C methods is now more robust under the hood.
|
151
|
+
- C methods which expect Array arguments will now also work with objects
|
152
|
+
that can be converted to an Array (with #to_ary), such as Ftor.
|
153
|
+
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
== Rubygame 2.0.0:
|
158
|
+
|
159
|
+
*NOTICE*: version 2.0.0 is not totally backward-compatible with 1.1.0.
|
160
|
+
You may have to update existing applications to the new syntax.
|
161
|
+
(Hence the major version number going up.)
|
162
|
+
|
163
|
+
=== API Changes
|
164
|
+
|
165
|
+
==== Basic audio playback with SDL_mixer
|
166
|
+
|
167
|
+
- Add: Rubygame::Mixer module (basic SDL_mixer audio playback).
|
168
|
+
- Add: Rubygame::Mixer::Sample class (load audio samples).
|
169
|
+
|
170
|
+
==== Event management system revamped
|
171
|
+
|
172
|
+
- Add: Rubygame.fetch_sdl_events()
|
173
|
+
- Add: Rubygame::EventQueue class.
|
174
|
+
- Add: Rubygame::MailQueue mixin.
|
175
|
+
- Retire: Rubygame::Queue class.
|
176
|
+
|
177
|
+
==== Surface swallows Draw, Transform, and Image methods
|
178
|
+
|
179
|
+
- Updated: Rubygame::Surface class
|
180
|
+
- Add: Surface.load_image() (migrated from Image).
|
181
|
+
- Add: ##savebmp (migrated from Image).
|
182
|
+
- Add: ##draw_* (migrated from Draw).
|
183
|
+
- Add: ##rotozoom, ##zoom (migrated from Transform).
|
184
|
+
- Add: ##zoom_to method.
|
185
|
+
|
186
|
+
- Retire: Draw module (methods merged into Surface).
|
187
|
+
- Retire: Transform module (methods merged into Surface).
|
188
|
+
- Retire: Image module (methods merged into Surface).
|
189
|
+
|
190
|
+
==== Clock class improved
|
191
|
+
|
192
|
+
- Updated: Rubygame::Clock class
|
193
|
+
- Clock is now directly under Rubygame (not Rubygame::Time).
|
194
|
+
- Clock.new() takes no arguments, but yields self if a block is given.
|
195
|
+
- framerate limiting with ##tick is now much more accurate.
|
196
|
+
- Add: Clock.runtime(), Clock.wait(), Clock.delay() (migrated from Time)
|
197
|
+
- Rename: ##fps to ##framerate.
|
198
|
+
- Rename: ##desired_fps to ##target_framerate.
|
199
|
+
- Rename: ##desired_mspf to ##target_frametime.
|
200
|
+
- Rename: ##time to ##lifetime.
|
201
|
+
|
202
|
+
- Retire: Time module (methods merged into Clock).
|
203
|
+
|
204
|
+
==== Experimental classes/modules
|
205
|
+
|
206
|
+
- Add: Rubygame::MediaBag class.
|
207
|
+
- Add: Rubygame::Ftor class.
|
208
|
+
- Add: Rubygame::Hotspot mixin.
|
209
|
+
- Change: Rubygame::SFont class must be explicitly imported
|
210
|
+
(require 'rubygame/sfont').
|
211
|
+
|
212
|
+
==== New system for version and capability detection
|
213
|
+
|
214
|
+
- Rubygame::VERSIONS: a hash table with the version numbers of rubygame,
|
215
|
+
SDL, and any SDL_* libraries that were compiled in.
|
216
|
+
- Methods which are not supported will no be defined in the namespace;
|
217
|
+
formerly, they would be defined but nonfunctional (issued a warning and
|
218
|
+
returned nil).
|
219
|
+
|
220
|
+
==== Miscellaneous other changes and additions
|
221
|
+
|
222
|
+
- Add: Rubygame.quit (cleanly exit SDL; resets resolution after fullscreen).
|
223
|
+
|
224
|
+
- Updated: Rubygame::Surface class
|
225
|
+
- Argument list for Surface.new() has changed.
|
226
|
+
- Add: ##clip and ##clip=.
|
227
|
+
- Add: ##convert, ##to_display, and ##to_display_alpha.
|
228
|
+
|
229
|
+
- Updated: Rubygame::Screen class
|
230
|
+
- Rename: Screen.set_mode() to Screen.new().
|
231
|
+
- Add: Screen.set_mode() and Screen.instance() (aliases for Screen.new()).
|
232
|
+
- Add: ##title, ##title= (replaces ##caption and ##set_caption)
|
233
|
+
|
234
|
+
- Updated: Rubygame::TTF class
|
235
|
+
- Add: ##render_utf8 and ##render_unicode methods.
|
236
|
+
- Add: ##size_text method.
|
237
|
+
|
238
|
+
=== Bug Fixes
|
239
|
+
|
240
|
+
- Fix several erroneous Rect methods.
|
241
|
+
- Fix "bignum out of range of unsigned long (RangeError)" when using
|
242
|
+
Rubygame::FULLSCREEN.
|
243
|
+
|
244
|
+
=== Other Stuff
|
245
|
+
|
246
|
+
- New build/install system with Rake.
|
247
|
+
- Split the monolithic rubygame extension into modules:
|
248
|
+
rubygame_core:: main SDL interface.
|
249
|
+
rubygame_gfx:: SDL_gfx interface.
|
250
|
+
rubygame_image:: SDL_image interface.
|
251
|
+
rubygame_mixer:: SDL_mixer interface.
|
252
|
+
rubygame_ttf:: SDL_ttf interface.
|
data/README
ADDED
@@ -0,0 +1,123 @@
|
|
1
|
+
= Rubygame README
|
2
|
+
|
3
|
+
== What is Rubygame?
|
4
|
+
|
5
|
+
Rubygame is a cross-platform game-development extension and library for Ruby,
|
6
|
+
inspired by Pygame. The purpose of Rubygame is to empower game developers by
|
7
|
+
providing them with powerful and flexible high-level concepts. Instead of
|
8
|
+
worrying about low-level technical details, you can focus your energy on
|
9
|
+
more interesting things (like making a fun game).
|
10
|
+
|
11
|
+
Rubygame's core is written in C to bind low-level SDL functions into Ruby.
|
12
|
+
On top of that is a pure Ruby library for higher-level behavior like
|
13
|
+
event and game object management.
|
14
|
+
|
15
|
+
=== Relevant Links
|
16
|
+
1. Rubygame: http://rubygame.sourceforge.net
|
17
|
+
2. Ruby: http://www.ruby-lang.org
|
18
|
+
3. Pygame: http://www.pygame.org
|
19
|
+
4. SDL: http://www.libsdl.org
|
20
|
+
|
21
|
+
== Requirements
|
22
|
+
|
23
|
+
You will definitely need these software packages to compile Rubygame:
|
24
|
+
|
25
|
+
* ruby >= 1.8
|
26
|
+
* SDL >= 1.2.7
|
27
|
+
* rake >= 0.7.0 (for build/install system)
|
28
|
+
|
29
|
+
It's highly recommended that you have these packages as well, or some
|
30
|
+
cool features won't be available!
|
31
|
+
|
32
|
+
* SDL_gfx >= 2.0.10
|
33
|
+
* SDL_image >= 1.2.3
|
34
|
+
* SDL_mixer >= 1.2.7
|
35
|
+
* SDL_ttf >= 2.0.6
|
36
|
+
|
37
|
+
(If you don't have some of those, you have to disable those features
|
38
|
+
by passing some flags to the build process. See "Advanced Install", below.)
|
39
|
+
|
40
|
+
If you are compiling source on a binary-based Linux ditribution,
|
41
|
+
you will also need the "dev" packages of ruby, SDL, SDL_gfx, SDL_image,
|
42
|
+
SDL_mixer, and SDL_ttf. (Really, you just need the header files.)
|
43
|
+
|
44
|
+
And of course, if you are compiling the source, you will need a C compiler!
|
45
|
+
These versions of gcc worked fine when I tried them; other compilers might
|
46
|
+
work too:
|
47
|
+
|
48
|
+
* gcc 3.3, 3.4, 4.0, 4.1
|
49
|
+
|
50
|
+
|
51
|
+
== Install
|
52
|
+
|
53
|
+
=== Basic Install
|
54
|
+
|
55
|
+
Extract the archive and enter its top directory.
|
56
|
+
Then run ($ indicates as user, # as root):
|
57
|
+
|
58
|
+
$ rake build
|
59
|
+
# rake install
|
60
|
+
|
61
|
+
=== Advanced Install
|
62
|
+
|
63
|
+
The build and install tasks can be configured by providing certain commands
|
64
|
+
to rake:
|
65
|
+
|
66
|
+
no-sdl-gfx:: do not build modules which depend on SDL_gfx
|
67
|
+
no-sdl-image:: do not build modules which depend on SDL_image
|
68
|
+
no-sdl-mixer:: do not build modules which depend on SDL_mixer
|
69
|
+
no-sdl-ttf:: do not build modules which depend on SDL_ttf
|
70
|
+
no-opengl:: do not build modules which depend on OpenGL
|
71
|
+
|
72
|
+
no-sdl-config:: do not guess compiler/linker flags using `sdl-config'
|
73
|
+
|
74
|
+
debug:: build modules with debbugging flags enabled
|
75
|
+
universal:: on MacOS X, try to compile for both PPC and Intel
|
76
|
+
verbose:: display the build commands as they are run
|
77
|
+
|
78
|
+
Additionally, the build process respects certain environmental variables.
|
79
|
+
In particular, CFLAGS and LDFLAGS are important for users compiling with
|
80
|
+
the no-sdl-config command.
|
81
|
+
|
82
|
+
CC:: C compiler command
|
83
|
+
CFLAGS:: flags passed to the C compiler
|
84
|
+
LDSHARED:: linker command
|
85
|
+
LDFLAGS:: flags passed to the linker
|
86
|
+
RUBYARCHDIR:: where to install platform-specific compiled extensions
|
87
|
+
RUBYLIBDIR:: where to install platform-independent interpreted libs
|
88
|
+
|
89
|
+
IMPORTANT: if you are missing any optional SDL_* libraries, you must specify
|
90
|
+
"no-*" flags for those libraries. For example, if you don't have SDL_gfx:
|
91
|
+
|
92
|
+
$ rake no-sdl-gfx build
|
93
|
+
|
94
|
+
If you don't disable the features, the compile will probably fail when it
|
95
|
+
looks for the headers and libraries. (The build system is not smart enough to
|
96
|
+
automatically disable missing features.)
|
97
|
+
|
98
|
+
=== Generating documentation
|
99
|
+
|
100
|
+
You can generate documentation for Rubygame's API by running:
|
101
|
+
|
102
|
+
# rake rdoc
|
103
|
+
|
104
|
+
Documentation will be generated as HTML in the 'html' directory.
|
105
|
+
Open 'html/index.html' in a web browser to get started.
|
106
|
+
|
107
|
+
== Usage
|
108
|
+
|
109
|
+
See the documentation (online at http://rubygame.sourceforge.net, or
|
110
|
+
generated locally with the 'rake rdoc' command).
|
111
|
+
|
112
|
+
We also recommend that you take a peek at the demo applications in
|
113
|
+
the 'samples' directory, especially chimp.rb.
|
114
|
+
|
115
|
+
== License
|
116
|
+
|
117
|
+
Rubygame is distributed under the terms of the GNU Lesser GPL.
|
118
|
+
See LICENSE for more details.
|
119
|
+
|
120
|
+
Some of the sample files are distributed under licenses other than the
|
121
|
+
GNU Lesser GPL. See 'samples/README' and 'samples/GPL' for more details.
|
122
|
+
|
123
|
+
John Croisant (jacius at users.sourceforge.net)
|
data/ROADMAP
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
= ROADMAP
|
2
|
+
|
3
|
+
This represents the direction Rubygame will be going in, but
|
4
|
+
keep in mind that specific details may change over time.
|
5
|
+
|
6
|
+
|
7
|
+
== 2.4.0 (next minor release)
|
8
|
+
|
9
|
+
Release focus: Events.
|
10
|
+
|
11
|
+
- New EventHook class, has 3 parts: owner, trigger, and action.
|
12
|
+
- New trigger classes, e.g. KeyPressedTrigger (matches key presses)
|
13
|
+
- New action classes, e.g. MethodAction (calls a method on owner)
|
14
|
+
|
15
|
+
- New EventHandler class
|
16
|
+
- Holds many EventHook instances, feeds the event to each
|
17
|
+
matching hook.
|
18
|
+
|
19
|
+
- New HasEventHandler mixin, can embed in sprite, etc. classes
|
20
|
+
for easy event handling and hook creation.
|
21
|
+
|
22
|
+
- New Events module, with a suite of new and revised event classes.
|
23
|
+
|
24
|
+
- Eliminate integer constants in favor of symbols
|
25
|
+
- Keyboard keys are symbols (e.g. :up, :a, :space)
|
26
|
+
- Mouse buttons are symbols (e.g. :mouse_left, :mouse_wheel_up)
|
27
|
+
|
28
|
+
- Nicer, more natural naming scheme
|
29
|
+
- Drop the word "Event" from the class names.
|
30
|
+
- "Down" and "Up" (e.g. in KeyDownEvent) become "Pressed"
|
31
|
+
and "Released" (e.g. KeyPressed).
|
32
|
+
- MouseMotionEvent becomes MouseMoved.
|
33
|
+
- Other miscellaneous changes.
|
34
|
+
|
35
|
+
- Better unicode / international keyboard support
|
36
|
+
- KeyPress#string gives a UTF8 bytestring with the glyph that was
|
37
|
+
generated by the keypress (useful for text input in GUIs).
|
38
|
+
|
39
|
+
- Old versions of the event classes stay the same, but are deprecated.
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
== 2.X.0 (_possible_ minor releases before 3.0.0)
|
44
|
+
|
45
|
+
=== Focus: Time
|
46
|
+
|
47
|
+
- New Events::Tick class with lots of information
|
48
|
+
- Time since last frame, in both seconds and milliseconds.
|
49
|
+
- Current time
|
50
|
+
- Current framerate
|
51
|
+
|
52
|
+
- New clock class
|
53
|
+
- Based on Ruby's timer (allows multi-threading).
|
54
|
+
- Better framerate calculation algorithm
|
55
|
+
- #tick returns an instance of Events::Tick.
|
56
|
+
|
57
|
+
=== Focus: Sprites
|
58
|
+
|
59
|
+
- New sprite system
|
60
|
+
- New Sprite, Scene, and Camera classes.
|
61
|
+
- More powerful and simpler to use.
|
62
|
+
- Integration with the Chipmunk physics library.
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
== 3.0.0 (next major release)
|
67
|
+
|
68
|
+
- Backwards compatibility is broken:
|
69
|
+
- Deprecated classes / methods retired:
|
70
|
+
- Rubygame::Mixer module.
|
71
|
+
- Rubygame::Mixer::Sample class. Use Rubygame::Sound.
|
72
|
+
- Rubygame::Mixer::Music class. Use Rubygame::Music.
|
73
|
+
- Rubygame::Surface.load_image method. User Rubygame::Surface.load.
|
74
|
+
- Surface#get_at
|
75
|
+
- Sprites::Group#collide_group
|
76
|
+
|
77
|
+
- Change Sprites::Group#collide_group to scrap the 'killa/killb' stuff,
|
78
|
+
take a block instead.
|
79
|
+
|
80
|
+
|
81
|
+
|
82
|
+
== On the horizon...
|
83
|
+
|
84
|
+
- Polygon, circle, and other geometric primitives
|
85
|
+
- Drawing, with styles?
|
86
|
+
- OpenGL drawing?
|
87
|
+
- Collision detection?
|
88
|
+
- Physical shapes w/ Chipmunk?
|
89
|
+
- Generate bounding Polygon from an image automatically?
|
90
|
+
|
91
|
+
- Path (Curve?) (graphs/plots for tracing position and other uses)
|
92
|
+
- Can find the position N units along the path.
|
93
|
+
- Can draw a line showing the path.
|
94
|
+
- LinearPath (connect the dots, linear interpolation)
|
95
|
+
- BezierPath (chain of continuous cubic Bézier curves)
|
96
|
+
- CodePath (calculated from a code block)
|
97
|
+
|
98
|
+
- Effect (Action?)
|
99
|
+
- "Attach" to an instance, does something over time.
|
100
|
+
- E.g. moves a sprite from point A to point B over N seconds.
|
101
|
+
- Many types of effects, easy to define custom ones.
|
102
|
+
- Takes parameters: start/end time, others depending on effect.
|
103
|
+
|
104
|
+
- C equivalent of Rect.new_from_object (see rect.rb)
|
105
|
+
- Screen#update (cannot pass object with rect attribute)
|
106
|
+
- Screen#update_rects (same as above)
|
107
|
+
- Why not just call the ruby function from within C?
|
108
|
+
|
109
|
+
|