gosu 0.7.19-i386-mingw32 → 0.7.20-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/examples/TextInput.rb +15 -0
- data/lib/gosu.for_1_8.so +0 -0
- data/lib/gosu.for_1_9.so +0 -0
- data/lib/gosu.rb +5 -8
- metadata +2 -28
- data/reference/rdoc/classes/Gosu.html +0 -1546
- data/reference/rdoc/classes/Gosu/Color.html +0 -660
- data/reference/rdoc/classes/Gosu/Font.html +0 -545
- data/reference/rdoc/classes/Gosu/GLTexInfo.html +0 -412
- data/reference/rdoc/classes/Gosu/Image.html +0 -706
- data/reference/rdoc/classes/Gosu/Sample.html +0 -476
- data/reference/rdoc/classes/Gosu/SampleInstance.html +0 -523
- data/reference/rdoc/classes/Gosu/Song.html +0 -568
- data/reference/rdoc/classes/Gosu/TextInput.html +0 -444
- data/reference/rdoc/classes/Gosu/Window.html +0 -911
- data/reference/rdoc/classes/Numeric.html +0 -479
- data/reference/rdoc/created.rid +0 -1
- data/reference/rdoc/files/COPYING_txt.html +0 -391
- data/reference/rdoc/files/README_txt.html +0 -387
- data/reference/rdoc/files/reference/Deployment on OS X_rdoc.html +0 -381
- data/reference/rdoc/files/reference/Deployment on Windows_rdoc.html +0 -385
- data/reference/rdoc/files/reference/Drawing with Colors_rdoc.html +0 -363
- data/reference/rdoc/files/reference/Order of Corners_rdoc.html +0 -358
- data/reference/rdoc/files/reference/Tileability_rdoc.html +0 -374
- data/reference/rdoc/files/reference/Z Ordering_rdoc.html +0 -361
- data/reference/rdoc/files/reference/gosu_rb.html +0 -348
- data/reference/rdoc/fr_class_index.html +0 -12
- data/reference/rdoc/fr_file_index.html +0 -10
- data/reference/rdoc/fr_method_index.html +0 -66
- data/reference/rdoc/index.html +0 -1
- data/reference/rdoc/rdoc-style.css +0 -320
@@ -1,381 +0,0 @@
|
|
1
|
-
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>File: Deployment on OS X.rdoc</title><link type="text/css" href="../.././rdoc-style.css" rel="stylesheet" media="screen"/><script type="text/javascript">
|
2
|
-
// Allison template
|
3
|
-
// Copyright 2007, 2008 Cloudburst, LLC. Licensed under the AFL 3. See the included LICENSE file.
|
4
|
-
|
5
|
-
var href_base = '../.././rdoc-style.css'.replace(/(.*\/).*/, '$1'); // inline js is good for something
|
6
|
-
|
7
|
-
function $(id) {
|
8
|
-
if (document.getElementById)
|
9
|
-
elem = document.getElementById(id);
|
10
|
-
else if ( document.all )
|
11
|
-
elem = eval("document.all." + id);
|
12
|
-
else
|
13
|
-
return false;
|
14
|
-
return elem;
|
15
|
-
}
|
16
|
-
|
17
|
-
function toggle(id) {
|
18
|
-
elem = $(id);
|
19
|
-
elemStyle = elem.style;
|
20
|
-
if (elemStyle.display == "block") {
|
21
|
-
elemStyle.display = "none"
|
22
|
-
} else {
|
23
|
-
elemStyle.display = "block"
|
24
|
-
}
|
25
|
-
return true;
|
26
|
-
}
|
27
|
-
|
28
|
-
function toggleText(id) {
|
29
|
-
elem = $(id)
|
30
|
-
if (m = elem.innerHTML.match(/(Hide)(.*)/)) {
|
31
|
-
elem.innerHTML = "Show" + m[2];
|
32
|
-
} else if (m = elem.innerHTML.match(/(Show)(.*)/)) {
|
33
|
-
elem.innerHTML = "Hide" + m[2];
|
34
|
-
}
|
35
|
-
return true;
|
36
|
-
}
|
37
|
-
|
38
|
-
function span(s, klass) {
|
39
|
-
return '<span class="' + klass + '">' + s + '</span>';
|
40
|
-
}
|
41
|
-
|
42
|
-
function highlightSymbols() {
|
43
|
-
pres = document.getElementsByTagName('pre');
|
44
|
-
for(var i = 0; i < pres.length; i++) {
|
45
|
-
pre = pres[i];
|
46
|
-
spans = pre.getElementsByTagName('span');
|
47
|
-
for(var k = 0; k < spans.length; k++) {
|
48
|
-
span = spans[k];
|
49
|
-
if (span.className.match(/ruby-identifier/)) {
|
50
|
-
if (span.innerHTML.match(/^:/)) {
|
51
|
-
span.className += " ruby-symbol";
|
52
|
-
}
|
53
|
-
}
|
54
|
-
}
|
55
|
-
}
|
56
|
-
}
|
57
|
-
|
58
|
-
function hasClass(obj) {
|
59
|
-
var result = false;
|
60
|
-
if (obj.getAttributeNode("class") != null) {
|
61
|
-
result = obj.getAttributeNode("class").value;
|
62
|
-
}
|
63
|
-
return result;
|
64
|
-
}
|
65
|
-
|
66
|
-
function stripe() {
|
67
|
-
var even = true;
|
68
|
-
var color = "#e4ebed";
|
69
|
-
var tables = document.getElementsByTagName('table');
|
70
|
-
if (tables.length == 0) { return; }
|
71
|
-
for (var h = 0; h < tables.length; h++) {
|
72
|
-
var trs = tables[h].getElementsByTagName("tr");
|
73
|
-
for (var i = 0; i < trs.length; i++) {
|
74
|
-
var tds = trs[i].getElementsByTagName("td");
|
75
|
-
for (var j = 0; j < tds.length; j++) {
|
76
|
-
if (hasClass(tds[j]) != "first") {
|
77
|
-
var mytd = tds[j];
|
78
|
-
if (even) {
|
79
|
-
mytd.style.backgroundColor = color;
|
80
|
-
}
|
81
|
-
}
|
82
|
-
}
|
83
|
-
even = ! even;
|
84
|
-
}
|
85
|
-
}
|
86
|
-
}
|
87
|
-
|
88
|
-
function ajaxGet(url) {
|
89
|
-
url = (href_base + url).replace('/./', '/')
|
90
|
-
var req = false;
|
91
|
-
|
92
|
-
if (window.ActiveXObject) {
|
93
|
-
try {
|
94
|
-
// stupid hack because IE7 disables local Ajax with the native xmlhttprequest object
|
95
|
-
// for security purposes. Yet ActiveX still works. Thanks, Microsoft. I hate you. Die.
|
96
|
-
req = new ActiveXObject("MSXML2.XMLHTTP.3.0");
|
97
|
-
} catch (e) {
|
98
|
-
try {
|
99
|
-
/* IE 6 and maybe 5, don't know, don't care */
|
100
|
-
req = new ActiveXObject("Msxml2.XMLHTTP");
|
101
|
-
} catch (e) {
|
102
|
-
try {
|
103
|
-
req = new ActiveXObject("Microsoft.XMLHTTP");
|
104
|
-
} catch (e) {
|
105
|
-
req = false;
|
106
|
-
}
|
107
|
-
}
|
108
|
-
}
|
109
|
-
}
|
110
|
-
|
111
|
-
/* real browsers */
|
112
|
-
if (!req && window.XMLHttpRequest) {
|
113
|
-
try {
|
114
|
-
req = new XMLHttpRequest();
|
115
|
-
} catch (e) {
|
116
|
-
req = false;
|
117
|
-
}
|
118
|
-
}
|
119
|
-
|
120
|
-
if (req) {
|
121
|
-
req.open('GET', url, false);
|
122
|
-
req.send(null);
|
123
|
-
return req.responseText;
|
124
|
-
} else {
|
125
|
-
return "Ajax error";
|
126
|
-
}
|
127
|
-
}
|
128
|
-
|
129
|
-
|
130
|
-
function addEvent(elm, evType, fn, useCapture) {
|
131
|
-
if (elm.addEventListener) {
|
132
|
-
elm.addEventListener(evType, fn, useCapture);
|
133
|
-
return true;
|
134
|
-
} else if (elm.attachEvent) {
|
135
|
-
var r = elm.attachEvent('on' + evType, fn);
|
136
|
-
return r;
|
137
|
-
} else {
|
138
|
-
elm['on' + evType] = fn;
|
139
|
-
}
|
140
|
-
}
|
141
|
-
|
142
|
-
function insertIndices() {
|
143
|
-
pages = ["class", "file", "method"]
|
144
|
-
for (x in pages) {
|
145
|
-
$(pages[x]).innerHTML += ajaxGet('fr_' + pages[x] + '_index.html').replace(/(href=")/g, '$1' + href_base);
|
146
|
-
}
|
147
|
-
/* mouseoverify method links */
|
148
|
-
links = $('method').getElementsByTagName('a');
|
149
|
-
for (var x = 0; x < links.length; x++) {
|
150
|
-
if (m = links[x].innerHTML.match(/(.*)\s\((.*)\)/)) {
|
151
|
-
links[x].innerHTML = m[1] + '<br>';
|
152
|
-
links[x].title = m[2];
|
153
|
-
}
|
154
|
-
}
|
155
|
-
/* this is stupid */
|
156
|
-
$('class').style.display = "block";
|
157
|
-
$('file').style.display = "block";
|
158
|
-
|
159
|
-
/* has to be here because IE7 does not guarantee the onLoad callback order */
|
160
|
-
abbreviateIndicesInner(["class", "file"], 25, "a");
|
161
|
-
/* same, linkTitle() depends on the class link list */
|
162
|
-
linkTitle();
|
163
|
-
}
|
164
|
-
|
165
|
-
function abbreviateIndices() {
|
166
|
-
var ids = ["defined_in", "child_of", "includes", "requires", "method", "methods"];
|
167
|
-
abbreviateIndicesInner(ids, 25, 'a');
|
168
|
-
abbreviateIndicesInner(ids, 25, 'span');
|
169
|
-
}
|
170
|
-
|
171
|
-
function abbreviateIndicesInner(indices, amount, tag) {
|
172
|
-
for (var x = 0; x < indices.length; x++) {
|
173
|
-
var the_index = $(indices[x]);
|
174
|
-
if (the_index) {
|
175
|
-
links = the_index.getElementsByTagName(tag);
|
176
|
-
for (var y = 0; y < links.length; y++) {
|
177
|
-
var link = links[y];
|
178
|
-
if (link.getElementsByTagName('span').length == 0 && link.getElementsByTagName('a').length == 0) {
|
179
|
-
// avoid nesting
|
180
|
-
link.innerHTML = link.innerHTML.replace(/<br>|\n/gi, '');
|
181
|
-
link.title = link.innerHTML;
|
182
|
-
link.innerHTML = abbreviate(link.innerHTML, amount) + '<br>';
|
183
|
-
}
|
184
|
-
}
|
185
|
-
}
|
186
|
-
}
|
187
|
-
}
|
188
|
-
|
189
|
-
function linkTitle() {
|
190
|
-
|
191
|
-
/* grab the correct title element from the index */
|
192
|
-
var index_page = ajaxGet('index.html');
|
193
|
-
title_text = index_page.match(/<title>(.*)<\/title>/m)[1];
|
194
|
-
document.title = title_text + " - " + document.title;
|
195
|
-
var p = $('header').getElementsByTagName('p')[0]
|
196
|
-
if (p.innerHTML.match(/^\s*$/)) {
|
197
|
-
p.innerHTML = title_text;
|
198
|
-
} else {
|
199
|
-
p.innerHTML = title_text + ": " + p.innerHTML;
|
200
|
-
}
|
201
|
-
|
202
|
-
/* set the link properly */
|
203
|
-
title_link = index_page.match(/<a\s+href="(.*?)"/)[1];
|
204
|
-
var element = $('title');
|
205
|
-
var item_type = "";
|
206
|
-
var item_name = "";
|
207
|
-
if (m = element.innerHTML.match(/(Class:|Module:|File:)\s*(.*)/)) {
|
208
|
-
item_type = m[1];
|
209
|
-
item_name = m[2];
|
210
|
-
} else {
|
211
|
-
item_name = element.innerHTML;
|
212
|
-
}
|
213
|
-
element.innerHTML = '<a href="' + href_base + title_link + '">' + item_type + " " + abbreviate(item_name, 45) + '</a>';
|
214
|
-
element.getElementsByTagName('a')[0].title = item_name
|
215
|
-
|
216
|
-
/* breadcrumb navigation */
|
217
|
-
items = item_name.split("::");
|
218
|
-
items_new = item_name.split("::");
|
219
|
-
file_links = $('class').getElementsByTagName('a');
|
220
|
-
for (var x = 0; x < items.length - 1; x++ ){
|
221
|
-
var item = items[x];
|
222
|
-
link = ("/classes/" + items.slice(0,x).join("/") + "/" + item + ".html").replace('//', '/');
|
223
|
-
regex = new RegExp(RegExp.escape(link) + '$');
|
224
|
-
for (var y = 0; y < file_links.length; y++) {
|
225
|
-
if (file_links[y].href.match(regex)) {
|
226
|
-
items_new[x] = '<a href="' + href_base + link + '">' + item + '</a>';
|
227
|
-
break;
|
228
|
-
}
|
229
|
-
}
|
230
|
-
}
|
231
|
-
$('item_name').innerHTML = item_type + ' ' + items_new.join(" :: ");
|
232
|
-
}
|
233
|
-
|
234
|
-
function abbreviate(s, size) {
|
235
|
-
// Try to get rid of path and extension in any case. These are not
|
236
|
-
// even interesting if there is enough space.
|
237
|
-
|
238
|
-
s = s.replace(/\..*$/, '');
|
239
|
-
s = s.replace(/.*\//g, '');
|
240
|
-
|
241
|
-
// Now this is a blatant hack.
|
242
|
-
|
243
|
-
if (s == 'gosu')
|
244
|
-
return ''; // Noone will ever see the link, harhar!
|
245
|
-
|
246
|
-
while (s.length > size) {
|
247
|
-
var old_s = s;
|
248
|
-
s = s.replace(/\s|\n/mg, '');
|
249
|
-
s = s.replace(/([A-Z])[a-z]+/m, '$1');
|
250
|
-
if (!s || old_s == s) {
|
251
|
-
return "..." + s.substring(s.length - size, s.length);
|
252
|
-
}
|
253
|
-
}
|
254
|
-
return s;
|
255
|
-
}
|
256
|
-
|
257
|
-
function disableSubmit(event) {
|
258
|
-
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
|
259
|
-
if (keyCode == 13) {
|
260
|
-
return false;
|
261
|
-
} else {
|
262
|
-
return true;
|
263
|
-
}
|
264
|
-
}
|
265
|
-
|
266
|
-
function filterList(id, s, event) {
|
267
|
-
|
268
|
-
/* some weak escaping */
|
269
|
-
s = s.replace(/[^\w\d\.\_\-\/\:\=\[\]\?\!]/g, '');
|
270
|
-
s = RegExp.escape(s);
|
271
|
-
|
272
|
-
var show_all = false;
|
273
|
-
if (s.match(/^\s*$/)) {
|
274
|
-
show_all = true;
|
275
|
-
}
|
276
|
-
|
277
|
-
links = $(id).getElementsByTagName('a')
|
278
|
-
regex = new RegExp(s, 'i');
|
279
|
-
|
280
|
-
for (var x = 0; x < links.length; x++) {
|
281
|
-
var link = links[x];
|
282
|
-
if (show_all) {
|
283
|
-
link.style.display = 'inline';
|
284
|
-
} else {
|
285
|
-
if (link.innerHTML.match(regex)) {
|
286
|
-
link.style.display = 'inline';
|
287
|
-
} else {
|
288
|
-
link.style.display = 'none';
|
289
|
-
}
|
290
|
-
}
|
291
|
-
}
|
292
|
-
return true;
|
293
|
-
}
|
294
|
-
|
295
|
-
RegExp.escape = function(text) {
|
296
|
-
if (!arguments.callee.sRE) {
|
297
|
-
var specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'];
|
298
|
-
arguments.callee.sRE = new RegExp(
|
299
|
-
'(\\' + specials.join('|\\') + ')', 'g'
|
300
|
-
);
|
301
|
-
}
|
302
|
-
return text.replace(arguments.callee.sRE, '\\$1');
|
303
|
-
}
|
304
|
-
|
305
|
-
function hacks() {
|
306
|
-
// show the spacer if necessary,
|
307
|
-
divs = document.getElementsByTagName('div');
|
308
|
-
for(var x = 0; x < divs.length; x++) {
|
309
|
-
if (divs[x].className && divs[x].className.match(/top/)) {
|
310
|
-
document.getElementById('spacer').style.display = 'block';
|
311
|
-
}
|
312
|
-
}
|
313
|
-
// remove extra colons from tables
|
314
|
-
tds = document.getElementsByTagName('td');
|
315
|
-
for(var x = 0; x < tds.length; x++) {
|
316
|
-
str = tds[x].innerHTML
|
317
|
-
if (str.charAt(str.length - 1) == ":") {
|
318
|
-
tds[x].innerHTML = str.slice(0, str.length - 1)
|
319
|
-
}
|
320
|
-
}
|
321
|
-
}
|
322
|
-
|
323
|
-
addEvent(window, 'load', insertIndices, false);
|
324
|
-
addEvent(window, 'load', abbreviateIndices, false);
|
325
|
-
addEvent(window, 'load', stripe, false);
|
326
|
-
addEvent(window, 'load', highlightSymbols, false);
|
327
|
-
addEvent(window, 'load', hacks, false);
|
328
|
-
</script></head><body><div id="container"><div class="curve" id="preheader_curve_0"></div><div class="curve" id="preheader_curve_1"></div><div class="curve" id="preheader_curve_2"></div><div class="curve" id="preheader_curve_3"></div><div class="curve" id="preheader_curve_4"></div><div class="curve" id="preheader_curve_5"></div><div id="header"><span><h1 id="title">
|
329
|
-
File: Deployment on OS X.rdoc
|
330
|
-
</h1></span></div><div class="clear"></div><div id="left">
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
<div id="spacer"></div><div class="navigation darker index" id="class_wrapper"><div class="list_header"><h3>All classes</h3></div><div class="list_header_link"><a href="#" onclick="toggle('class'); toggleText('class_link'); return false;" id="class_link">Hide...</a></div><div class="clear"></div><div id="class"><form><label for="filter_class">Filter: </label><input type="text" onKeyUp="return filterList('class', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_class"></input></form></div></div><div class="navigation darker index" id="file_wrapper"><div class="list_header"><h3>All files</h3></div><div class="list_header_link"><a href="#" onclick="toggle('file'); toggleText('file_link'); return false;" id="file_link">Hide...</a></div><div class="clear"></div><div id="file"><form><label for="filter_file">Filter: </label><input type="text" onKeyUp="return filterList('file', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_file"></input></form></div></div><div class="navigation darker index" id="method_wrapper"><div class="list_header"><h3>All methods</h3></div><div class="list_header_link"><a href="#" onclick="toggle('method'); toggleText('method_link'); return false;" id="method_link">Show...</a></div><div class="clear"></div><div id="method"><form><label for="filter_method">Filter: </label><input type="text" onKeyUp="return filterList('method', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_method"></input></form></div></div></div><div id="content">
|
336
|
-
<div id="description"><h1>Ruby/<a href="../../classes/Gosu.html">Gosu</a> Packaging on Mac OS X with the Ruby 1.9.1 Bundle</h1>
|
337
|
-
<p>
|
338
|
-
The Mac package of <a href="../../classes/Gosu.html">Gosu</a> (on the
|
339
|
-
Google Code Downloads list) comes with a mysterious RubyGosu App.app
|
340
|
-
bundle. All you have to do to share your game with the public is following
|
341
|
-
these easy steps:
|
342
|
-
</p>
|
343
|
-
<ul>
|
344
|
-
<li>Duplicate this bundle and open its contents via the right-click menu
|
345
|
-
|
346
|
-
</li>
|
347
|
-
<li>Edit the Info.plist file, and change at least the bundle identifier.
|
348
|
-
|
349
|
-
</li>
|
350
|
-
<li>Copy your game files into the Contents/Resources subfolder (<a
|
351
|
-
href="../../classes/Gosu.html">Gosu</a> libraries are not necessary, they
|
352
|
-
are built in)
|
353
|
-
|
354
|
-
</li>
|
355
|
-
<li>Rename your game‘s main source file to Main.rb
|
356
|
-
|
357
|
-
</li>
|
358
|
-
</ul>
|
359
|
-
<p>
|
360
|
-
And you‘re done! You now have a fully functional .app bundle. The
|
361
|
-
.app is a self-contained Ruby 1.9.1 (core) installation. This especially
|
362
|
-
means that you need to put comments of the form # Encoding: UTF -8 on the
|
363
|
-
first line of every source file that uses non-ASCII characters. If you need
|
364
|
-
to use libraries other than Ruby‘s core and <a
|
365
|
-
href="../../classes/Gosu.html">Gosu</a>, see the Extending <a
|
366
|
-
href="../../classes/Gosu.html">Gosu</a> forum for advice.
|
367
|
-
</p>
|
368
|
-
</div>
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
<p></p>
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
</div><div class="clear" id="footer">Allison 2 © 2007 <a href="http://cloudbur.st">Cloudburst, LLC</a><br/>slightly adapted for the Gosu project by Julian Raschke</div></div></body></html>
|
@@ -1,385 +0,0 @@
|
|
1
|
-
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>File: Deployment on Windows.rdoc</title><link type="text/css" href="../.././rdoc-style.css" rel="stylesheet" media="screen"/><script type="text/javascript">
|
2
|
-
// Allison template
|
3
|
-
// Copyright 2007, 2008 Cloudburst, LLC. Licensed under the AFL 3. See the included LICENSE file.
|
4
|
-
|
5
|
-
var href_base = '../.././rdoc-style.css'.replace(/(.*\/).*/, '$1'); // inline js is good for something
|
6
|
-
|
7
|
-
function $(id) {
|
8
|
-
if (document.getElementById)
|
9
|
-
elem = document.getElementById(id);
|
10
|
-
else if ( document.all )
|
11
|
-
elem = eval("document.all." + id);
|
12
|
-
else
|
13
|
-
return false;
|
14
|
-
return elem;
|
15
|
-
}
|
16
|
-
|
17
|
-
function toggle(id) {
|
18
|
-
elem = $(id);
|
19
|
-
elemStyle = elem.style;
|
20
|
-
if (elemStyle.display == "block") {
|
21
|
-
elemStyle.display = "none"
|
22
|
-
} else {
|
23
|
-
elemStyle.display = "block"
|
24
|
-
}
|
25
|
-
return true;
|
26
|
-
}
|
27
|
-
|
28
|
-
function toggleText(id) {
|
29
|
-
elem = $(id)
|
30
|
-
if (m = elem.innerHTML.match(/(Hide)(.*)/)) {
|
31
|
-
elem.innerHTML = "Show" + m[2];
|
32
|
-
} else if (m = elem.innerHTML.match(/(Show)(.*)/)) {
|
33
|
-
elem.innerHTML = "Hide" + m[2];
|
34
|
-
}
|
35
|
-
return true;
|
36
|
-
}
|
37
|
-
|
38
|
-
function span(s, klass) {
|
39
|
-
return '<span class="' + klass + '">' + s + '</span>';
|
40
|
-
}
|
41
|
-
|
42
|
-
function highlightSymbols() {
|
43
|
-
pres = document.getElementsByTagName('pre');
|
44
|
-
for(var i = 0; i < pres.length; i++) {
|
45
|
-
pre = pres[i];
|
46
|
-
spans = pre.getElementsByTagName('span');
|
47
|
-
for(var k = 0; k < spans.length; k++) {
|
48
|
-
span = spans[k];
|
49
|
-
if (span.className.match(/ruby-identifier/)) {
|
50
|
-
if (span.innerHTML.match(/^:/)) {
|
51
|
-
span.className += " ruby-symbol";
|
52
|
-
}
|
53
|
-
}
|
54
|
-
}
|
55
|
-
}
|
56
|
-
}
|
57
|
-
|
58
|
-
function hasClass(obj) {
|
59
|
-
var result = false;
|
60
|
-
if (obj.getAttributeNode("class") != null) {
|
61
|
-
result = obj.getAttributeNode("class").value;
|
62
|
-
}
|
63
|
-
return result;
|
64
|
-
}
|
65
|
-
|
66
|
-
function stripe() {
|
67
|
-
var even = true;
|
68
|
-
var color = "#e4ebed";
|
69
|
-
var tables = document.getElementsByTagName('table');
|
70
|
-
if (tables.length == 0) { return; }
|
71
|
-
for (var h = 0; h < tables.length; h++) {
|
72
|
-
var trs = tables[h].getElementsByTagName("tr");
|
73
|
-
for (var i = 0; i < trs.length; i++) {
|
74
|
-
var tds = trs[i].getElementsByTagName("td");
|
75
|
-
for (var j = 0; j < tds.length; j++) {
|
76
|
-
if (hasClass(tds[j]) != "first") {
|
77
|
-
var mytd = tds[j];
|
78
|
-
if (even) {
|
79
|
-
mytd.style.backgroundColor = color;
|
80
|
-
}
|
81
|
-
}
|
82
|
-
}
|
83
|
-
even = ! even;
|
84
|
-
}
|
85
|
-
}
|
86
|
-
}
|
87
|
-
|
88
|
-
function ajaxGet(url) {
|
89
|
-
url = (href_base + url).replace('/./', '/')
|
90
|
-
var req = false;
|
91
|
-
|
92
|
-
if (window.ActiveXObject) {
|
93
|
-
try {
|
94
|
-
// stupid hack because IE7 disables local Ajax with the native xmlhttprequest object
|
95
|
-
// for security purposes. Yet ActiveX still works. Thanks, Microsoft. I hate you. Die.
|
96
|
-
req = new ActiveXObject("MSXML2.XMLHTTP.3.0");
|
97
|
-
} catch (e) {
|
98
|
-
try {
|
99
|
-
/* IE 6 and maybe 5, don't know, don't care */
|
100
|
-
req = new ActiveXObject("Msxml2.XMLHTTP");
|
101
|
-
} catch (e) {
|
102
|
-
try {
|
103
|
-
req = new ActiveXObject("Microsoft.XMLHTTP");
|
104
|
-
} catch (e) {
|
105
|
-
req = false;
|
106
|
-
}
|
107
|
-
}
|
108
|
-
}
|
109
|
-
}
|
110
|
-
|
111
|
-
/* real browsers */
|
112
|
-
if (!req && window.XMLHttpRequest) {
|
113
|
-
try {
|
114
|
-
req = new XMLHttpRequest();
|
115
|
-
} catch (e) {
|
116
|
-
req = false;
|
117
|
-
}
|
118
|
-
}
|
119
|
-
|
120
|
-
if (req) {
|
121
|
-
req.open('GET', url, false);
|
122
|
-
req.send(null);
|
123
|
-
return req.responseText;
|
124
|
-
} else {
|
125
|
-
return "Ajax error";
|
126
|
-
}
|
127
|
-
}
|
128
|
-
|
129
|
-
|
130
|
-
function addEvent(elm, evType, fn, useCapture) {
|
131
|
-
if (elm.addEventListener) {
|
132
|
-
elm.addEventListener(evType, fn, useCapture);
|
133
|
-
return true;
|
134
|
-
} else if (elm.attachEvent) {
|
135
|
-
var r = elm.attachEvent('on' + evType, fn);
|
136
|
-
return r;
|
137
|
-
} else {
|
138
|
-
elm['on' + evType] = fn;
|
139
|
-
}
|
140
|
-
}
|
141
|
-
|
142
|
-
function insertIndices() {
|
143
|
-
pages = ["class", "file", "method"]
|
144
|
-
for (x in pages) {
|
145
|
-
$(pages[x]).innerHTML += ajaxGet('fr_' + pages[x] + '_index.html').replace(/(href=")/g, '$1' + href_base);
|
146
|
-
}
|
147
|
-
/* mouseoverify method links */
|
148
|
-
links = $('method').getElementsByTagName('a');
|
149
|
-
for (var x = 0; x < links.length; x++) {
|
150
|
-
if (m = links[x].innerHTML.match(/(.*)\s\((.*)\)/)) {
|
151
|
-
links[x].innerHTML = m[1] + '<br>';
|
152
|
-
links[x].title = m[2];
|
153
|
-
}
|
154
|
-
}
|
155
|
-
/* this is stupid */
|
156
|
-
$('class').style.display = "block";
|
157
|
-
$('file').style.display = "block";
|
158
|
-
|
159
|
-
/* has to be here because IE7 does not guarantee the onLoad callback order */
|
160
|
-
abbreviateIndicesInner(["class", "file"], 25, "a");
|
161
|
-
/* same, linkTitle() depends on the class link list */
|
162
|
-
linkTitle();
|
163
|
-
}
|
164
|
-
|
165
|
-
function abbreviateIndices() {
|
166
|
-
var ids = ["defined_in", "child_of", "includes", "requires", "method", "methods"];
|
167
|
-
abbreviateIndicesInner(ids, 25, 'a');
|
168
|
-
abbreviateIndicesInner(ids, 25, 'span');
|
169
|
-
}
|
170
|
-
|
171
|
-
function abbreviateIndicesInner(indices, amount, tag) {
|
172
|
-
for (var x = 0; x < indices.length; x++) {
|
173
|
-
var the_index = $(indices[x]);
|
174
|
-
if (the_index) {
|
175
|
-
links = the_index.getElementsByTagName(tag);
|
176
|
-
for (var y = 0; y < links.length; y++) {
|
177
|
-
var link = links[y];
|
178
|
-
if (link.getElementsByTagName('span').length == 0 && link.getElementsByTagName('a').length == 0) {
|
179
|
-
// avoid nesting
|
180
|
-
link.innerHTML = link.innerHTML.replace(/<br>|\n/gi, '');
|
181
|
-
link.title = link.innerHTML;
|
182
|
-
link.innerHTML = abbreviate(link.innerHTML, amount) + '<br>';
|
183
|
-
}
|
184
|
-
}
|
185
|
-
}
|
186
|
-
}
|
187
|
-
}
|
188
|
-
|
189
|
-
function linkTitle() {
|
190
|
-
|
191
|
-
/* grab the correct title element from the index */
|
192
|
-
var index_page = ajaxGet('index.html');
|
193
|
-
title_text = index_page.match(/<title>(.*)<\/title>/m)[1];
|
194
|
-
document.title = title_text + " - " + document.title;
|
195
|
-
var p = $('header').getElementsByTagName('p')[0]
|
196
|
-
if (p.innerHTML.match(/^\s*$/)) {
|
197
|
-
p.innerHTML = title_text;
|
198
|
-
} else {
|
199
|
-
p.innerHTML = title_text + ": " + p.innerHTML;
|
200
|
-
}
|
201
|
-
|
202
|
-
/* set the link properly */
|
203
|
-
title_link = index_page.match(/<a\s+href="(.*?)"/)[1];
|
204
|
-
var element = $('title');
|
205
|
-
var item_type = "";
|
206
|
-
var item_name = "";
|
207
|
-
if (m = element.innerHTML.match(/(Class:|Module:|File:)\s*(.*)/)) {
|
208
|
-
item_type = m[1];
|
209
|
-
item_name = m[2];
|
210
|
-
} else {
|
211
|
-
item_name = element.innerHTML;
|
212
|
-
}
|
213
|
-
element.innerHTML = '<a href="' + href_base + title_link + '">' + item_type + " " + abbreviate(item_name, 45) + '</a>';
|
214
|
-
element.getElementsByTagName('a')[0].title = item_name
|
215
|
-
|
216
|
-
/* breadcrumb navigation */
|
217
|
-
items = item_name.split("::");
|
218
|
-
items_new = item_name.split("::");
|
219
|
-
file_links = $('class').getElementsByTagName('a');
|
220
|
-
for (var x = 0; x < items.length - 1; x++ ){
|
221
|
-
var item = items[x];
|
222
|
-
link = ("/classes/" + items.slice(0,x).join("/") + "/" + item + ".html").replace('//', '/');
|
223
|
-
regex = new RegExp(RegExp.escape(link) + '$');
|
224
|
-
for (var y = 0; y < file_links.length; y++) {
|
225
|
-
if (file_links[y].href.match(regex)) {
|
226
|
-
items_new[x] = '<a href="' + href_base + link + '">' + item + '</a>';
|
227
|
-
break;
|
228
|
-
}
|
229
|
-
}
|
230
|
-
}
|
231
|
-
$('item_name').innerHTML = item_type + ' ' + items_new.join(" :: ");
|
232
|
-
}
|
233
|
-
|
234
|
-
function abbreviate(s, size) {
|
235
|
-
// Try to get rid of path and extension in any case. These are not
|
236
|
-
// even interesting if there is enough space.
|
237
|
-
|
238
|
-
s = s.replace(/\..*$/, '');
|
239
|
-
s = s.replace(/.*\//g, '');
|
240
|
-
|
241
|
-
// Now this is a blatant hack.
|
242
|
-
|
243
|
-
if (s == 'gosu')
|
244
|
-
return ''; // Noone will ever see the link, harhar!
|
245
|
-
|
246
|
-
while (s.length > size) {
|
247
|
-
var old_s = s;
|
248
|
-
s = s.replace(/\s|\n/mg, '');
|
249
|
-
s = s.replace(/([A-Z])[a-z]+/m, '$1');
|
250
|
-
if (!s || old_s == s) {
|
251
|
-
return "..." + s.substring(s.length - size, s.length);
|
252
|
-
}
|
253
|
-
}
|
254
|
-
return s;
|
255
|
-
}
|
256
|
-
|
257
|
-
function disableSubmit(event) {
|
258
|
-
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
|
259
|
-
if (keyCode == 13) {
|
260
|
-
return false;
|
261
|
-
} else {
|
262
|
-
return true;
|
263
|
-
}
|
264
|
-
}
|
265
|
-
|
266
|
-
function filterList(id, s, event) {
|
267
|
-
|
268
|
-
/* some weak escaping */
|
269
|
-
s = s.replace(/[^\w\d\.\_\-\/\:\=\[\]\?\!]/g, '');
|
270
|
-
s = RegExp.escape(s);
|
271
|
-
|
272
|
-
var show_all = false;
|
273
|
-
if (s.match(/^\s*$/)) {
|
274
|
-
show_all = true;
|
275
|
-
}
|
276
|
-
|
277
|
-
links = $(id).getElementsByTagName('a')
|
278
|
-
regex = new RegExp(s, 'i');
|
279
|
-
|
280
|
-
for (var x = 0; x < links.length; x++) {
|
281
|
-
var link = links[x];
|
282
|
-
if (show_all) {
|
283
|
-
link.style.display = 'inline';
|
284
|
-
} else {
|
285
|
-
if (link.innerHTML.match(regex)) {
|
286
|
-
link.style.display = 'inline';
|
287
|
-
} else {
|
288
|
-
link.style.display = 'none';
|
289
|
-
}
|
290
|
-
}
|
291
|
-
}
|
292
|
-
return true;
|
293
|
-
}
|
294
|
-
|
295
|
-
RegExp.escape = function(text) {
|
296
|
-
if (!arguments.callee.sRE) {
|
297
|
-
var specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'];
|
298
|
-
arguments.callee.sRE = new RegExp(
|
299
|
-
'(\\' + specials.join('|\\') + ')', 'g'
|
300
|
-
);
|
301
|
-
}
|
302
|
-
return text.replace(arguments.callee.sRE, '\\$1');
|
303
|
-
}
|
304
|
-
|
305
|
-
function hacks() {
|
306
|
-
// show the spacer if necessary,
|
307
|
-
divs = document.getElementsByTagName('div');
|
308
|
-
for(var x = 0; x < divs.length; x++) {
|
309
|
-
if (divs[x].className && divs[x].className.match(/top/)) {
|
310
|
-
document.getElementById('spacer').style.display = 'block';
|
311
|
-
}
|
312
|
-
}
|
313
|
-
// remove extra colons from tables
|
314
|
-
tds = document.getElementsByTagName('td');
|
315
|
-
for(var x = 0; x < tds.length; x++) {
|
316
|
-
str = tds[x].innerHTML
|
317
|
-
if (str.charAt(str.length - 1) == ":") {
|
318
|
-
tds[x].innerHTML = str.slice(0, str.length - 1)
|
319
|
-
}
|
320
|
-
}
|
321
|
-
}
|
322
|
-
|
323
|
-
addEvent(window, 'load', insertIndices, false);
|
324
|
-
addEvent(window, 'load', abbreviateIndices, false);
|
325
|
-
addEvent(window, 'load', stripe, false);
|
326
|
-
addEvent(window, 'load', highlightSymbols, false);
|
327
|
-
addEvent(window, 'load', hacks, false);
|
328
|
-
</script></head><body><div id="container"><div class="curve" id="preheader_curve_0"></div><div class="curve" id="preheader_curve_1"></div><div class="curve" id="preheader_curve_2"></div><div class="curve" id="preheader_curve_3"></div><div class="curve" id="preheader_curve_4"></div><div class="curve" id="preheader_curve_5"></div><div id="header"><span><h1 id="title">
|
329
|
-
File: Deployment on Windows.rdoc
|
330
|
-
</h1></span></div><div class="clear"></div><div id="left">
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
<div id="spacer"></div><div class="navigation darker index" id="class_wrapper"><div class="list_header"><h3>All classes</h3></div><div class="list_header_link"><a href="#" onclick="toggle('class'); toggleText('class_link'); return false;" id="class_link">Hide...</a></div><div class="clear"></div><div id="class"><form><label for="filter_class">Filter: </label><input type="text" onKeyUp="return filterList('class', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_class"></input></form></div></div><div class="navigation darker index" id="file_wrapper"><div class="list_header"><h3>All files</h3></div><div class="list_header_link"><a href="#" onclick="toggle('file'); toggleText('file_link'); return false;" id="file_link">Hide...</a></div><div class="clear"></div><div id="file"><form><label for="filter_file">Filter: </label><input type="text" onKeyUp="return filterList('file', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_file"></input></form></div></div><div class="navigation darker index" id="method_wrapper"><div class="list_header"><h3>All methods</h3></div><div class="list_header_link"><a href="#" onclick="toggle('method'); toggleText('method_link'); return false;" id="method_link">Show...</a></div><div class="clear"></div><div id="method"><form><label for="filter_method">Filter: </label><input type="text" onKeyUp="return filterList('method', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_method"></input></form></div></div></div><div id="content">
|
336
|
-
<div id="description"><h1>Ruby/<a href="../../classes/Gosu.html">Gosu</a> Packaging on Microsoft Windows</h1>
|
337
|
-
<p>
|
338
|
-
To compile your Ruby game into an executable on Windows, you need to run it
|
339
|
-
through the following program from the command line:
|
340
|
-
</p>
|
341
|
-
<p>
|
342
|
-
<a
|
343
|
-
href="http://github.com/larsch/ocra/tree/master">github.com/larsch/ocra/tree/master</a>
|
344
|
-
</p>
|
345
|
-
<p>
|
346
|
-
In theory, it should be as simple as these two lines in a command prompt:
|
347
|
-
</p>
|
348
|
-
<p>
|
349
|
-
gem install ocra ocra my_ruby_game.rb
|
350
|
-
</p>
|
351
|
-
<p>
|
352
|
-
If you are using sound, you have to ship fmod.dll too. Other gems like
|
353
|
-
ruby-opengl might require their own DLLs too. You can put them in a lib
|
354
|
-
subdirectory and then include them on the command line:
|
355
|
-
</p>
|
356
|
-
<p>
|
357
|
-
ocra my_ruby_game.rb lib*
|
358
|
-
</p>
|
359
|
-
<p>
|
360
|
-
To let your game find the DLLs you have to change the PATH environment like
|
361
|
-
this somewhere early in your game:
|
362
|
-
</p>
|
363
|
-
<p>
|
364
|
-
ENV[‘PATH’] = File.join(GAMEROOT,"lib") +
|
365
|
-
";" + ENV[‘PATH’]
|
366
|
-
</p>
|
367
|
-
<p>
|
368
|
-
If you have any trouble, feel free to ask on the <a
|
369
|
-
href="../../classes/Gosu.html">Gosu</a> boards. Ocra is still a project in
|
370
|
-
development and everybody can benefit from sharing your experience.
|
371
|
-
</p>
|
372
|
-
</div>
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
<p></p>
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
</div><div class="clear" id="footer">Allison 2 © 2007 <a href="http://cloudbur.st">Cloudburst, LLC</a><br/>slightly adapted for the Gosu project by Julian Raschke</div></div></body></html>
|