Skip to content

Commit 7cba737

Browse files
committedNov 13, 2012
initial save support
1 parent 143f65e commit 7cba737

File tree

5 files changed

+47
-0
lines changed

5 files changed

+47
-0
lines changed
 

‎games/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
game_*.json

‎games/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Temporary storage for game data

‎server.js

+19
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,29 @@
11
var port = (process.env.NODE_ENV == 'production') ? 80 : 3000
2+
, fs = require('fs')
3+
, util = require('util')
24
, express = require('express')
35
, app = express()
6+
, gameId = 0
7+
, gameFolder = 'games'
48
;
59

10+
app.use(express.bodyParser());
611
app.use(express.static(__dirname + '/static'));
712

13+
app.post('/save', function(req, res) {
14+
gameId++;
15+
16+
var gameData = req.body.data
17+
, gameFilename = gameFolder+'/game_'+gameId+'.json'
18+
;
19+
20+
fs.writeFile(gameFilename, gameData, function(err) {
21+
var buf = gameFilename;
22+
if (err) buf = 'ERR';
23+
res.send(buf);
24+
});
25+
});
26+
827
app.get('/', function (req, res) {
928
res.send('Hello');
1029
});

‎static/index.html

+3
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,12 @@ <h4>Game</h4>
9797
<ul>
9898
<li><label for="game-title">Title</label><input id="game-title" class="setting" type="text" /></li>
9999
<li><label for="game-subtitle">Subtitle</label><input id="game-subtitle" class="setting" type="text" /></li>
100+
<!--
100101
<li align="center"><br>Game.json</li>
101102
<li align="center"><button id="export">Show</button> <button onclick="$('#export-out').style.visibility='hidden';">Hide</button></li>
102103
<li align="center"><textarea id="export-out" readonly></textarea></li>
104+
-->
105+
<li align="center"><br /><button onclick="game.saveGame()">Save</button></li>
103106
</ul>
104107
</div>
105108

‎static/js/game.js

+23
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,28 @@ try {
482482
}
483483

484484
}
485+
486+
, saveGame = function() {
487+
var data = 'data=' + JSON.stringify(game.getGameData())
488+
, saveURL = '/save'
489+
;
490+
491+
var xhr = new XMLHttpRequest();
492+
xhr.open('POST', saveURL, true);
493+
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
494+
xhr.responseType = 'text';
495+
496+
xhr.onload = function() {
497+
var result = xhr.responseText;
498+
if (result != 'ERR')
499+
console.log('saved: ' + result)
500+
else
501+
console.warn('error saving game!')
502+
;
503+
}
504+
505+
xhr.send(encodeURI(data));
506+
}
485507
;
486508

487509
// Constructor
@@ -535,6 +557,7 @@ try {
535557
, playerEventStart: playerEventStart
536558
, playerEventStop: playerEventStop
537559
, addWaveToLevel: addWaveToLevel
560+
, saveGame: saveGame
538561

539562
// objects
540563
, audio: audio

0 commit comments

Comments
 (0)
Failed to load comments.