public
Fork of jacius/rubygame
Description: Flexible game creation library for Ruby
Homepage: http://rubygame.sourceforge.net
Clone URL: git://github.com/atiaxi/rubygame.git
rubygame / NEWS
100644 253 lines (173 sloc) 7.702 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
= NEWS
 
== Rubygame 2.3.0
 
Release focus: Media resources.
 
=== Features
 
- Add: Rubygame::NamedResource mixin module
  - Provides per-class resource repository and on-demand auto-loading
    behavior.
 
- Add: Rubygame::Music class.
  - Intended as a full replacement for Rubygame::Mixer::Music.
  - Includes NamedResources mixin.
  - NOTE: Requires SDL_mixer support.
 
- Add: Rubygame::Sound class.
  - Intended as a full replacement for Rubygame::Mixer::Sample.
  - Includes NamedResources mixin.
  - NOTE: Requires SDL_mixer support.
 
- Update: Rubygame::Surface class.
  - Includes NamedResources mixin.
  - Add: Surface.load_from_string (NOTE: Requires SDL_image support.)
 
=== Fixes
 
- ColorBase had been accidently placed in the top level namespace in
  Rubygame 2.2.0. It is now correctly placed in the Rubygame::Color
  module.
 
=== Other Stuff
 
- Deprecation (will be removed in Rubygame 3.0):
  - Rubygame::Mixer module and methods are deprecated.
  - Rubygame::Mixer::Music class is deprecated.
    Use Rubygame::Music class instead.
  - Rubygame::Mixer::Sample class is deprecated.
    Use Rubygame::Sound class instead.
  - Rubygame::Surface.load_image is deprecated.
    Use Rubygame::Surface.load instead.
 
- NOTE: Run ruby with -w flag or set $_v = true to enable run-time
  deprecation warnings.
 
 
 
 
== Rubygame 2.2.0
 
Release focus: Colors.
 
=== Features
 
- Add: Rubygame::Color module
  - ColorRGB, ColorHSV, and ColorHSL classes.
  - X11 and CSS palettes of pre-defined colors.
  - Surface methods can accept ColorRGB etc. for colors.
  - Automatic lookup of color names when a string or symbol
    is passed for a color to Surface methods.
- Add: Surface#set_at().
 
- Add: Screen#icon=().
 
=== Bug Fixes
 
- Fix: Surface#draw_arc was incorrectly documented as Surface#draw_pie
 
=== Improvements
 
- Rect#collide_rect? is now faster.
- Sprites::Group#collide_group can take a block; arguments are deprecated.
 
=== Other Stuff
 
- Build system correctly recompiles if source has changed.
- Build system option syntax has changed. See the README: Advanced Install.
- Build system will correctly exit with an error status if it can't compile;
  fixes Rubygems trying to install even when compile failed.
 
=== Acknowledgements
 
- Michael Swiger (mokkan) for Screen#icon=.
- ippa for optimizing Rect#collide_rect?.
 
 
 
 
== Rubygame 2.1.0
 
=== Features
 
- Add: Mixer::Music module.
- Add: Mixer.driver_name method.
- Add: Depth sorting for sprites.
- Add: Sprite#undraw.
- Add: TTF#size_utf8 and TTF#size_unicode.
- Add: Rubygame.key_name.
 
=== Bug Fixes
 
- Fix: Bug with dirty rectangles in UpdateGroup.
- Fix: Incorrect docs for joy-hat direction value.
- Fix: Segfaults when Joysticks are garbage-collected after Rubygame has quit.
- Fix: Segfaults when using Surface#convert, #to_display, or #to_display_alpha
  when no video mode has been set.
- Fix: Surface#get_at returning [0,0,0,0] when it shouldn't.
- Fix: Sprites::Group#collide_group behaving incorrectly (again).
- Fix: Build system doesn't correctly handle quoted spaces in --cflags/--lflags.
  (NOTE: Use CFLAGS/LDFLAGS environment variables now, instead.)
 
=== Known Issues
 
- Build system won't detect changed source files and recompile as necessary;
  you must "rake clobber build" after a change.
 
=== Other Stuff
 
- Added argument checks to several Rect methods.
- Surfaces can be created with no Screen mode set.
- Mixer.open_audio has default values.
- TTF style getting/setting refactored under the hood.
- Added demo_music.rb and a sample song.ogg to try out music.
 
=== Acknowledgements
 
- Johan Berntsson for adding Mixer::Music.
- Daniel Neis Araujo for adding Sprite#undraw.
- Roger Ostrander (denor) for and bug fixes and adding Rubygame.key_name.
- Bjorn De Meyer (beoran) for numerous patches and improvements.
 
 
 
 
== Rubygame 2.0.1
 
=== Bug Fixes
 
- Fix: Segfaults in several C methods when passed an unexpected argument type.
- Fix: Segfaults in Screen#update and Screen#update_rects when the Rect(s)
  extended out of the Screen bounds.
- Fix: Ftor#magnitude= behaving incorrectly.
- Fix: Rect#clip! behaving incorrectly.
- Fix: Sprites::Group#collide_group behaving incorrectly.
- Fix: Surface#savebmp wanting too many arguments.
 
=== Other Stuff
 
- Argument handling for C methods is now more robust under the hood.
- C methods which expect Array arguments will now also work with objects
  that can be converted to an Array (with #to_ary), such as Ftor.
 
 
 
 
== Rubygame 2.0.0:
 
*NOTICE*: version 2.0.0 is not totally backward-compatible with 1.1.0.
You may have to update existing applications to the new syntax.
(Hence the major version number going up.)
 
=== API Changes
 
==== Basic audio playback with SDL_mixer
 
- Add: Rubygame::Mixer module (basic SDL_mixer audio playback).
- Add: Rubygame::Mixer::Sample class (load audio samples).
 
==== Event management system revamped
 
- Add: Rubygame.fetch_sdl_events()
- Add: Rubygame::EventQueue class.
- Add: Rubygame::MailQueue mixin.
- Retire: Rubygame::Queue class.
 
==== Surface swallows Draw, Transform, and Image methods
 
- Updated: Rubygame::Surface class
  - Add: Surface.load_image() (migrated from Image).
  - Add: ##savebmp (migrated from Image).
  - Add: ##draw_* (migrated from Draw).
  - Add: ##rotozoom, ##zoom (migrated from Transform).
  - Add: ##zoom_to method.
 
- Retire: Draw module (methods merged into Surface).
- Retire: Transform module (methods merged into Surface).
- Retire: Image module (methods merged into Surface).
 
==== Clock class improved
 
- Updated: Rubygame::Clock class
  - Clock is now directly under Rubygame (not Rubygame::Time).
  - Clock.new() takes no arguments, but yields self if a block is given.
  - framerate limiting with ##tick is now much more accurate.
  - Add: Clock.runtime(), Clock.wait(), Clock.delay() (migrated from Time)
  - Rename: ##fps to ##framerate.
  - Rename: ##desired_fps to ##target_framerate.
  - Rename: ##desired_mspf to ##target_frametime.
  - Rename: ##time to ##lifetime.
 
- Retire: Time module (methods merged into Clock).
 
==== Experimental classes/modules
 
- Add: Rubygame::MediaBag class.
- Add: Rubygame::Ftor class.
- Add: Rubygame::Hotspot mixin.
- Change: Rubygame::SFont class must be explicitly imported
  (require 'rubygame/sfont').
 
==== New system for version and capability detection
 
- Rubygame::VERSIONS: a hash table with the version numbers of rubygame,
  SDL, and any SDL_* libraries that were compiled in.
- Methods which are not supported will no be defined in the namespace;
  formerly, they would be defined but nonfunctional (issued a warning and
  returned nil).
 
==== Miscellaneous other changes and additions
 
- Add: Rubygame.quit (cleanly exit SDL; resets resolution after fullscreen).
 
- Updated: Rubygame::Surface class
  - Argument list for Surface.new() has changed.
  - Add: ##clip and ##clip=.
  - Add: ##convert, ##to_display, and ##to_display_alpha.
 
- Updated: Rubygame::Screen class
  - Rename: Screen.set_mode() to Screen.new().
  - Add: Screen.set_mode() and Screen.instance() (aliases for Screen.new()).
  - Add: ##title, ##title= (replaces ##caption and ##set_caption)
 
- Updated: Rubygame::TTF class
  - Add: ##render_utf8 and ##render_unicode methods.
  - Add: ##size_text method.
 
=== Bug Fixes
 
- Fix several erroneous Rect methods.
- Fix "bignum out of range of unsigned long (RangeError)" when using
  Rubygame::FULLSCREEN.
 
=== Other Stuff
 
- New build/install system with Rake.
- Split the monolithic rubygame extension into modules:
  rubygame_core:: main SDL interface.
  rubygame_gfx:: SDL_gfx interface.
  rubygame_image:: SDL_image interface.
  rubygame_mixer:: SDL_mixer interface.
  rubygame_ttf:: SDL_ttf interface.