define(["sugar-web/activity/activity"], function (activity) {
|
|
|
|
// Manipulate the DOM only when it is ready.
|
|
requirejs(['domReady!'], function (doc) {
|
|
|
|
// Initialize the activity.
|
|
activity.setup();
|
|
var myHighestScore = 0;
|
|
|
|
//Loads highest score from Journal
|
|
loadHighScore();
|
|
|
|
var $game = $('#canvas').blockrain({
|
|
speed: 20,
|
|
theme: 'candy',
|
|
autoplay: false,
|
|
autoplayRestart: true,
|
|
autoBlockWidth: true,
|
|
autoBlockSize: 24,
|
|
touchControls: true,
|
|
highestScore: myHighestScore,
|
|
onStart: function(){},
|
|
onRestart: function(){
|
|
loadHighScore(); // loads highscore when game is restarted.
|
|
},
|
|
onGameOver: function(score){
|
|
saveHighestScore();
|
|
},
|
|
|
|
onLine: function(lines, scoreIncrement, score){
|
|
if (score > myHighestScore){
|
|
myHighestScore = score;
|
|
}
|
|
},
|
|
});
|
|
|
|
// Save high score in Journal on Stop
|
|
document.getElementById("stop-button").addEventListener('click', function (event) {
|
|
saveHighestScore();
|
|
});
|
|
|
|
//Function to save high score
|
|
function saveHighestScore() {
|
|
console.log("writing...");
|
|
var jsonData = JSON.stringify(myHighestScore);
|
|
//console.log(jsonData);
|
|
activity.getDatastoreObject().setDataAsText(jsonData);
|
|
activity.getDatastoreObject().save(function (error) {
|
|
if (error === null) {
|
|
console.log("write done.");
|
|
} else {
|
|
console.log("write failed.");
|
|
}
|
|
});
|
|
}
|
|
|
|
//Function to load high score
|
|
function loadHighScore() {
|
|
activity.getDatastoreObject().loadAsText(function(error, metadata, data) {
|
|
if (error == null && data != null) {
|
|
myHighestScore = JSON.parse(data);
|
|
console.log(myHighestScore);
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
function switchTheme(next) {
|
|
var themes = Object.keys(BlockrainThemes);
|
|
var currentTheme = $game.blockrain('theme');
|
|
var currentIx = themes.indexOf(currentTheme);
|
|
|
|
if( next ) { currentIx++; }
|
|
else { currentIx--; }
|
|
|
|
if( currentIx >= themes.length ){ currentIx = 0; }
|
|
if( currentIx < 0 ){ currentIx = themes.length-1; }
|
|
|
|
$game.blockrain('theme', themes[currentIx]);
|
|
}
|
|
|
|
document.getElementById("btn-next").onclick = function() {
|
|
switchTheme(true);
|
|
};
|
|
|
|
});
|
|
|
|
});
|