rubygame 2.2.0-i586-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. data/CREDITS +60 -0
  2. data/LICENSE +504 -0
  3. data/NEWS +201 -0
  4. data/README +139 -0
  5. data/ROADMAP +43 -0
  6. data/Rakefile +409 -0
  7. data/doc/extended_readme.rdoc +49 -0
  8. data/doc/getting_started.rdoc +47 -0
  9. data/doc/macosx_install.rdoc +70 -0
  10. data/doc/windows_install.rdoc +123 -0
  11. data/ext/rubygame/MANIFEST +25 -0
  12. data/ext/rubygame/rubygame_core.so +0 -0
  13. data/ext/rubygame/rubygame_event.c +644 -0
  14. data/ext/rubygame/rubygame_event.h +48 -0
  15. data/ext/rubygame/rubygame_event.o +0 -0
  16. data/ext/rubygame/rubygame_gfx.c +942 -0
  17. data/ext/rubygame/rubygame_gfx.h +101 -0
  18. data/ext/rubygame/rubygame_gfx.o +0 -0
  19. data/ext/rubygame/rubygame_gfx.so +0 -0
  20. data/ext/rubygame/rubygame_gl.c +154 -0
  21. data/ext/rubygame/rubygame_gl.h +32 -0
  22. data/ext/rubygame/rubygame_gl.o +0 -0
  23. data/ext/rubygame/rubygame_image.c +108 -0
  24. data/ext/rubygame/rubygame_image.h +41 -0
  25. data/ext/rubygame/rubygame_image.o +0 -0
  26. data/ext/rubygame/rubygame_image.so +0 -0
  27. data/ext/rubygame/rubygame_joystick.c +247 -0
  28. data/ext/rubygame/rubygame_joystick.h +41 -0
  29. data/ext/rubygame/rubygame_joystick.o +0 -0
  30. data/ext/rubygame/rubygame_main.c +155 -0
  31. data/ext/rubygame/rubygame_main.h +33 -0
  32. data/ext/rubygame/rubygame_main.o +0 -0
  33. data/ext/rubygame/rubygame_mixer.c +764 -0
  34. data/ext/rubygame/rubygame_mixer.h +62 -0
  35. data/ext/rubygame/rubygame_mixer.o +0 -0
  36. data/ext/rubygame/rubygame_mixer.so +0 -0
  37. data/ext/rubygame/rubygame_screen.c +448 -0
  38. data/ext/rubygame/rubygame_screen.h +43 -0
  39. data/ext/rubygame/rubygame_screen.o +0 -0
  40. data/ext/rubygame/rubygame_shared.c +209 -0
  41. data/ext/rubygame/rubygame_shared.h +60 -0
  42. data/ext/rubygame/rubygame_shared.o +0 -0
  43. data/ext/rubygame/rubygame_surface.c +1147 -0
  44. data/ext/rubygame/rubygame_surface.h +62 -0
  45. data/ext/rubygame/rubygame_surface.o +0 -0
  46. data/ext/rubygame/rubygame_time.c +183 -0
  47. data/ext/rubygame/rubygame_time.h +32 -0
  48. data/ext/rubygame/rubygame_time.o +0 -0
  49. data/ext/rubygame/rubygame_ttf.c +599 -0
  50. data/ext/rubygame/rubygame_ttf.h +69 -0
  51. data/ext/rubygame/rubygame_ttf.o +0 -0
  52. data/ext/rubygame/rubygame_ttf.so +0 -0
  53. data/lib/rubygame/MANIFEST +12 -0
  54. data/lib/rubygame/clock.rb +128 -0
  55. data/lib/rubygame/color/models/base.rb +106 -0
  56. data/lib/rubygame/color/models/hsl.rb +153 -0
  57. data/lib/rubygame/color/models/hsv.rb +149 -0
  58. data/lib/rubygame/color/models/rgb.rb +78 -0
  59. data/lib/rubygame/color/palettes/css.rb +49 -0
  60. data/lib/rubygame/color/palettes/palette.rb +100 -0
  61. data/lib/rubygame/color/palettes/x11.rb +177 -0
  62. data/lib/rubygame/color.rb +79 -0
  63. data/lib/rubygame/constants.rb +238 -0
  64. data/lib/rubygame/event.rb +313 -0
  65. data/lib/rubygame/ftor.rb +370 -0
  66. data/lib/rubygame/hotspot.rb +265 -0
  67. data/lib/rubygame/keyconstants.rb +237 -0
  68. data/lib/rubygame/mediabag.rb +94 -0
  69. data/lib/rubygame/queue.rb +288 -0
  70. data/lib/rubygame/rect.rb +612 -0
  71. data/lib/rubygame/sfont.rb +223 -0
  72. data/lib/rubygame/sprite.rb +511 -0
  73. data/lib/rubygame.rb +41 -0
  74. data/samples/FreeSans.ttf +0 -0
  75. data/samples/GPL.txt +340 -0
  76. data/samples/README +40 -0
  77. data/samples/chimp.bmp +0 -0
  78. data/samples/chimp.rb +313 -0
  79. data/samples/demo_gl.rb +151 -0
  80. data/samples/demo_gl_tex.rb +197 -0
  81. data/samples/demo_music.rb +75 -0
  82. data/samples/demo_rubygame.rb +284 -0
  83. data/samples/demo_sfont.rb +52 -0
  84. data/samples/demo_ttf.rb +193 -0
  85. data/samples/demo_utf8.rb +53 -0
  86. data/samples/fist.bmp +0 -0
  87. data/samples/load_and_blit.rb +22 -0
  88. data/samples/panda.png +0 -0
  89. data/samples/punch.wav +0 -0
  90. data/samples/ruby.png +0 -0
  91. data/samples/song.ogg +0 -0
  92. data/samples/term16.png +0 -0
  93. data/samples/whiff.wav +0 -0
  94. metadata +152 -0
data/NEWS ADDED
@@ -0,0 +1,201 @@
1
+ == Changes from 2.1.0 to 2.2.0
2
+
3
+ === Features
4
+
5
+ - Add: Rubygame::Color module
6
+ - ColorRGB, ColorHSV, and ColorHSL classes.
7
+ - X11 and CSS palettes of pre-defined colors.
8
+ - Surface methods can accept ColorRGB etc. for colors.
9
+ - Automatic lookup of color names when a string or symbol
10
+ is passed for a color to Surface methods.
11
+ - Add: Surface#set_at().
12
+
13
+ - Add: Screen#icon=().
14
+
15
+ === Bug Fixes
16
+
17
+ - Fix: Surface#draw_arc was incorrectly documented as Surface#draw_pie
18
+
19
+ === Improvements
20
+
21
+ - Rect#collide_rect? is now faster.
22
+ - Sprites::Group#collide_group can take a block; arguments are deprecated.
23
+
24
+ === Other Stuff
25
+
26
+ - Build system correctly recompiles if source has changed.
27
+ - Build system option syntax has changed. See the README: Advanced Install.
28
+ - Build system will correctly exit with an error status if it can't compile;
29
+ fixes Rubygems trying to install even when compile failed.
30
+
31
+ === Acknowledgements
32
+
33
+ - Michael Swiger (mokkan) for Screen#icon=.
34
+ - ippa for optimizing Rect#collide_rect?.
35
+
36
+
37
+
38
+
39
+ == Changes from 2.0.1 to 2.1.0
40
+
41
+ === Features
42
+
43
+ - Add: Mixer::Music module.
44
+ - Add: Mixer.driver_name method.
45
+ - Add: Depth sorting for sprites.
46
+ - Add: Sprite#undraw.
47
+ - Add: TTF#size_utf8 and TTF#size_unicode.
48
+ - Add: Rubygame.key_name.
49
+
50
+ === Bug Fixes
51
+
52
+ - Fix: Bug with dirty rectangles in UpdateGroup.
53
+ - Fix: Incorrect docs for joy-hat direction value.
54
+ - Fix: Segfaults when Joysticks are garbage-collected after Rubygame has quit.
55
+ - Fix: Segfaults when using Surface#convert, #to_display, or #to_display_alpha
56
+ when no video mode has been set.
57
+ - Fix: Surface#get_at returning [0,0,0,0] when it shouldn't.
58
+ - Fix: Sprites::Group#collide_group behaving incorrectly (again).
59
+ - Fix: Build system doesn't correctly handle quoted spaces in --cflags/--lflags.
60
+ (NOTE: Use CFLAGS/LDFLAGS environment variables now, instead.)
61
+
62
+ === Known Issues
63
+
64
+ - Build system won't detect changed source files and recompile as necessary;
65
+ you must "rake clobber build" after a change.
66
+
67
+ === Other Stuff
68
+
69
+ - Added argument checks to several Rect methods.
70
+ - Surfaces can be created with no Screen mode set.
71
+ - Mixer.open_audio has default values.
72
+ - TTF style getting/setting refactored under the hood.
73
+ - Added demo_music.rb and a sample song.ogg to try out music.
74
+
75
+ === Acknowledgements
76
+
77
+ - Johan Berntsson for adding Mixer::Music.
78
+ - Daniel Neis Araujo for adding Sprite#undraw.
79
+ - Roger Ostrander (denor) for and bug fixes and adding Rubygame.key_name.
80
+ - Bjorn De Meyer (beoran) for numerous patches and improvements.
81
+
82
+
83
+
84
+
85
+ == Changes from 2.0.0 to 2.0.1
86
+
87
+ === Bug Fixes
88
+
89
+ - Fix: Segfaults in several C methods when passed an unexpected argument type.
90
+ - Fix: Segfaults in Screen#update and Screen#update_rects when the Rect(s)
91
+ extended out of the Screen bounds.
92
+ - Fix: Ftor#magnitude= behaving incorrectly.
93
+ - Fix: Rect#clip! behaving incorrectly.
94
+ - Fix: Sprites::Group#collide_group behaving incorrectly.
95
+ - Fix: Surface#savebmp wanting too many arguments.
96
+
97
+ === Other Stuff
98
+
99
+ - Argument handling for C methods is now more robust under the hood.
100
+ - C methods which expect Array arguments will now also work with objects
101
+ that can be converted to an Array (with #to_ary), such as Ftor.
102
+
103
+
104
+
105
+
106
+ == Changes from 1.1.0 to 2.0.0:
107
+
108
+ *NOTICE*: version 2.0.0 is not totally backward-compatible with 1.1.0.
109
+ You may have to update existing applications to the new syntax.
110
+ (Hence the major version number going up.)
111
+
112
+ === API Changes
113
+
114
+ ==== Basic audio playback with SDL_mixer
115
+
116
+ - Add: Rubygame::Mixer module (basic SDL_mixer audio playback).
117
+ - Add: Rubygame::Mixer::Sample class (load audio samples).
118
+
119
+ ==== Event management system revamped
120
+
121
+ - Add: Rubygame.fetch_sdl_events()
122
+ - Add: Rubygame::EventQueue class.
123
+ - Add: Rubygame::MailQueue mixin.
124
+ - Retire: Rubygame::Queue class.
125
+
126
+ ==== Surface swallows Draw, Transform, and Image methods
127
+
128
+ - Updated: Rubygame::Surface class
129
+ - Add: Surface.load_image() (migrated from Image).
130
+ - Add: ##savebmp (migrated from Image).
131
+ - Add: ##draw_* (migrated from Draw).
132
+ - Add: ##rotozoom, ##zoom (migrated from Transform).
133
+ - Add: ##zoom_to method.
134
+
135
+ - Retire: Draw module (methods merged into Surface).
136
+ - Retire: Transform module (methods merged into Surface).
137
+ - Retire: Image module (methods merged into Surface).
138
+
139
+ ==== Clock class improved
140
+
141
+ - Updated: Rubygame::Clock class
142
+ - Clock is now directly under Rubygame (not Rubygame::Time).
143
+ - Clock.new() takes no arguments, but yields self if a block is given.
144
+ - framerate limiting with ##tick is now much more accurate.
145
+ - Add: Clock.runtime(), Clock.wait(), Clock.delay() (migrated from Time)
146
+ - Rename: ##fps to ##framerate.
147
+ - Rename: ##desired_fps to ##target_framerate.
148
+ - Rename: ##desired_mspf to ##target_frametime.
149
+ - Rename: ##time to ##lifetime.
150
+
151
+ - Retire: Time module (methods merged into Clock).
152
+
153
+ ==== Experimental classes/modules
154
+
155
+ - Add: Rubygame::MediaBag class.
156
+ - Add: Rubygame::Ftor class.
157
+ - Add: Rubygame::Hotspot mixin.
158
+ - Change: Rubygame::SFont class must be explicitly imported
159
+ (require 'rubygame/sfont').
160
+
161
+ ==== New system for version and capability detection
162
+
163
+ - Rubygame::VERSIONS: a hash table with the version numbers of rubygame,
164
+ SDL, and any SDL_* libraries that were compiled in.
165
+ - Methods which are not supported will no be defined in the namespace;
166
+ formerly, they would be defined but nonfunctional (issued a warning and
167
+ returned nil).
168
+
169
+ ==== Miscellaneous other changes and additions
170
+
171
+ - Add: Rubygame.quit (cleanly exit SDL; resets resolution after fullscreen).
172
+
173
+ - Updated: Rubygame::Surface class
174
+ - Argument list for Surface.new() has changed.
175
+ - Add: ##clip and ##clip=.
176
+ - Add: ##convert, ##to_display, and ##to_display_alpha.
177
+
178
+ - Updated: Rubygame::Screen class
179
+ - Rename: Screen.set_mode() to Screen.new().
180
+ - Add: Screen.set_mode() and Screen.instance() (aliases for Screen.new()).
181
+ - Add: ##title, ##title= (replaces ##caption and ##set_caption)
182
+
183
+ - Updated: Rubygame::TTF class
184
+ - Add: ##render_utf8 and ##render_unicode methods.
185
+ - Add: ##size_text method.
186
+
187
+ === Bug Fixes
188
+
189
+ - Fix several erroneous Rect methods.
190
+ - Fix "bignum out of range of unsigned long (RangeError)" when using
191
+ Rubygame::FULLSCREEN.
192
+
193
+ === Other Stuff
194
+
195
+ - New build/install system with Rake.
196
+ - Split the monolithic rubygame extension into modules:
197
+ rubygame_core:: main SDL interface.
198
+ rubygame_gfx:: SDL_gfx interface.
199
+ rubygame_image:: SDL_image interface.
200
+ rubygame_mixer:: SDL_mixer interface.
201
+ rubygame_ttf:: SDL_ttf interface.
data/README ADDED
@@ -0,0 +1,139 @@
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 in ruby.
12
+ On top of that is a pure ruby library for higher-level behavior like
13
+ event and game object management.
14
+
15
+ There are two other Ruby-SDL bindings which are worth mentioning: Ruby/SDL
16
+ and RUDL. Ruby/SDL is a simple wrapper which closely mirrors SDL's C API,
17
+ while RUDL tries to provide some high-level concepts.
18
+ The main differences with Rubygame come down to a matter of priorities:
19
+ a great deal of care and effort goes into making Rubygame especially clean,
20
+ well-documented, powerful, and easy to use.
21
+
22
+ === Relevant Links
23
+ 1. Rubygame: http://rubygame.sourceforge.net
24
+ 2. Ruby: http://www.ruby-lang.org
25
+ 3. Pygame: http://www.pygame.org
26
+ 4. SDL: http://www.libsdl.org
27
+ 5. Ruby/SDL: http://www.kmc.gr.jp/~ohai/rubysdl.en.html
28
+ 6. RUDL: http://rudl.sourceforge.net
29
+
30
+ == Requirements
31
+
32
+ You will definitely need these software packages to compile Rubygame:
33
+
34
+ * ruby >= 1.8
35
+ * SDL >= 1.2.7
36
+ * rake >= 0.7.0 (for build/install system)
37
+
38
+ It's highly recommended that you have these packages as well, or some
39
+ cool features won't be available!
40
+
41
+ * SDL_gfx >= 2.0.10
42
+ * SDL_image >= 1.2.3
43
+ * SDL_mixer >= 1.2.7
44
+ * SDL_ttf >= 2.0.6
45
+
46
+ (If you don't have some of those, you have to disable those features
47
+ by passing some flags to the build process. See "Advanced Install", below.)
48
+
49
+ If you are compiling source on a binary-based Linux ditribution,
50
+ you will also need the "dev" packages of ruby, SDL, SDL_gfx, SDL_image,
51
+ SDL_mixer, and SDL_ttf. (Really, you just need the header files.)
52
+
53
+ And of course, if you are compiling the source, you will need a C compiler!
54
+ These versions of gcc worked fine when I tried them; other compilers might
55
+ work too:
56
+
57
+ * gcc 3.3, 3.4, 4.0, 4.1
58
+
59
+
60
+ == Install
61
+
62
+ === Basic Install
63
+
64
+ Extract the archive and enter its top directory.
65
+ Then run ($ indicates as user, # as root):
66
+
67
+ $ rake build
68
+ # rake install
69
+
70
+ === Advanced Install
71
+
72
+ The build and install tasks can be configured by providing certain commands
73
+ to rake:
74
+
75
+ * no-sdl-gfx:: do not build modules which depend on SDL_gfx
76
+ * no-sdl-image:: do not build modules which depend on SDL_image
77
+ * no-sdl-mixer:: do not build modules which depend on SDL_mixer
78
+ * no-sdl-ttf:: do not build modules which depend on SDL_ttf
79
+ * no-opengl:: do not build modules which depend on OpenGL
80
+
81
+ * no-sdl-config:: do not guess compiler/linker flags using `sdl-config'
82
+
83
+ * debug:: build modules with debbugging flags enabled
84
+ * verbose:: display the build commands as they are run
85
+
86
+ Additionally, the build process respects certain environmental variables.
87
+ In particular, CFLAGS and LDFLAGS are important for users compiling with
88
+ the no-sdl-config command.
89
+
90
+ * CC:: C compiler command
91
+ * CFLAGS:: flags passed to the C compiler
92
+ * LDSHARED:: linker command
93
+ * LDFLAGS:: flags passed to the linker
94
+ * RUBYARCHDIR:: where to install platform-specific compiled extensions
95
+ * RUBYLIBDIR:: where to install platform-independent interpreted libs
96
+
97
+ IMPORTANT: if you are missing any optional SDL_* libraries, you must specify
98
+ "no-*" flags for those libraries. For example, if you don't have SDL_gfx:
99
+
100
+ $ rake no-gfx build
101
+
102
+ If you don't disable the features, the compile will probably fail when it
103
+ looks for the headers and libraries. (The build system is not smart enough to
104
+ automatically disable missing features.)
105
+
106
+ === Generating documentation
107
+
108
+ You can generate documentation for Rubygame's API by running:
109
+
110
+ # rake rdoc
111
+
112
+ Documentation will be generated as HTML in the 'html' directory.
113
+ Open 'html/index.html' in a web browser to get started.
114
+
115
+ == Usage
116
+
117
+ To use Rubygame in an application, do:
118
+
119
+ require 'rubygame'
120
+
121
+ You will probably also want a display window and event queue:
122
+
123
+ screen = Rubygame::Screen.new( [640,480] )
124
+ queue = Rubygame::EventQueue.new()
125
+
126
+ For more information, see the documentation (online at
127
+ http://rubygame.sourceforge.net, or generated locally with the
128
+ 'rake rdoc' command). You should also take a peek at the demo applications
129
+ in the 'samples' directory.
130
+
131
+ == License
132
+
133
+ Rubygame is distributed under the terms of the GNU Lesser GPL.
134
+ See LICENSE for more details.
135
+
136
+ Some of the sample files are distributed under other licenses than the
137
+ GNU Lesser GPL. See 'samples/README' and 'samples/GPL' for more details.
138
+
139
+ John Croisant (jacius at users.sourceforge.net)
data/ROADMAP ADDED
@@ -0,0 +1,43 @@
1
+ = ROADMAP
2
+
3
+ === 3.0.0 (next major release)
4
+
5
+ - Backwards compatibility will be broken:
6
+ - Surface#get_at
7
+ - Sprites::Group#collide_group
8
+
9
+ - New scene/camera/sprite sytem.
10
+ - New geometric primitives classes (for collision detection, drawing).
11
+ - New hook-based event handler system.
12
+
13
+ - Keyboard events to be :symbols (e.g. :uparrow, :a, :spacebar)
14
+
15
+ - Clock class to be based on Ruby's timer (allows multi-threading).
16
+ - New TickEvent returned from Clock#tick.
17
+
18
+ - Change Sprites::Group#collide_group to scrap the 'killa/killb' stuff,
19
+ take a block instead.
20
+
21
+ === On the horizon...
22
+
23
+ - Path (Curve?) (graphs/plots for tracing position and other uses)
24
+ - Can find the position N units along the path.
25
+ - Can draw a line showing the path.
26
+ - LinearPath (connect the dots, linear interpolation)
27
+ - BezierPath (chain of continuous cubic Bézier curves)
28
+ - CodePath (calculated from a code block)
29
+
30
+ - Better support for non-US keyboards, particularly generating strings for
31
+ keypresses: (EURO, WORLD*). Will need someone with a non-US keyboard to
32
+ test this.
33
+
34
+ - Flesh out Mixer API.
35
+
36
+ - Flesh out Rect unit tests.
37
+
38
+ - C equivalent of Rect.new_from_object (see rect.rb)
39
+ - Screen#update (cannot pass object with rect attribute)
40
+ - Screen#update_rects (same as above)
41
+ - Why not just call the ruby function from within C?
42
+
43
+ - Generate bounding Polygon from an image automatically.