2014-12-18 21:01:12 -06:00
|
|
|
var $canvas = $("#snakeCanvas");
|
|
|
|
var canvasEl = $canvas[0];
|
|
|
|
var $scoreValue = $("#score span.value");
|
|
|
|
var $levelSelectSection = $("#levelSelect");
|
|
|
|
|
|
|
|
canvasEl.width = canvasEl.clientWidth;
|
|
|
|
canvasEl.height = canvasEl.clientHeight;
|
|
|
|
|
|
|
|
var initializePage = function() {
|
|
|
|
|
|
|
|
// Load the snake levels onto the page UI.
|
2014-12-29 23:16:06 -06:00
|
|
|
var newHtml = "";
|
|
|
|
|
2014-12-18 21:01:12 -06:00
|
|
|
_.each(SnakeLevels, function(levelSet, setName) {
|
2014-12-29 23:16:06 -06:00
|
|
|
newHtml += "<h5>" + setName + "</h5>" +
|
2014-12-18 21:01:12 -06:00
|
|
|
"<ol levelSet='" + setName + "'>";
|
|
|
|
|
2014-12-29 23:16:06 -06:00
|
|
|
_.each(levelSet.levels, function(levelData, levelIdx) {
|
2014-12-18 21:01:12 -06:00
|
|
|
newHtml += "<li levelNum='" + levelIdx + "'>" +
|
|
|
|
levelData.name + "</li>"; });
|
|
|
|
|
|
|
|
newHtml += "</ol>"; });
|
2014-12-29 23:16:06 -06:00
|
|
|
|
|
|
|
$levelSelectSection.append(newHtml);
|
|
|
|
|
|
|
|
// Add listeners for each of the level list items.
|
|
|
|
var levelLis = document.querySelectorAll("#levelSelect li");
|
|
|
|
for (var i = 0; i < levelLis.length; ++i) {
|
|
|
|
levelLis[i].addEventListener("click", levelLiClicked); }
|
|
|
|
|
|
|
|
// Load the initial level.
|
|
|
|
// loadLevel({target: document.querySelector("#levelSelect li.selected")});
|
|
|
|
|
2014-12-18 21:01:12 -06:00
|
|
|
};
|
|
|
|
|
2014-12-29 23:16:06 -06:00
|
|
|
var levelLiClicked = function(ev) {
|
|
|
|
var $levelLi = $(ev.target);
|
|
|
|
var $levelSetOl = $levelLi.closest("ol");
|
|
|
|
|
|
|
|
$("#levelSelect li.selected").removeClass("selected");
|
|
|
|
$levelLi.addClass("selected");
|
|
|
|
|
2015-11-01 23:53:09 -06:00
|
|
|
loadLevel($levelSetOl.attr("levelSet"), $levelLi.attr("levelNum")); };
|
2014-12-29 23:16:06 -06:00
|
|
|
|
|
|
|
var loadSelectedLevel = function() {
|
|
|
|
var $selectedLi = $("#levelSelect li.selected");
|
|
|
|
var $selectedLevelSetOl = $selectedLi.closest("ol");
|
|
|
|
|
|
|
|
loadLevel($selectedLevelSetOl.attr("levelSet"),
|
2015-11-01 23:53:09 -06:00
|
|
|
$selectedLi.attr("levelNum")); };
|
2014-12-29 23:16:06 -06:00
|
|
|
|
|
|
|
var loadLevel = function(levelSetName, levelNum) {
|
|
|
|
console.log("Loading " + levelSetName + " level " + levelNum);
|
|
|
|
|
|
|
|
var levelData = SnakeLevels[levelSetName].levels[parseInt(levelNum)];
|
|
|
|
|
|
|
|
// Show start overlay UI
|
|
|
|
}
|
2014-12-18 21:01:12 -06:00
|
|
|
|
|
|
|
var nextLevel = function() { };
|
|
|
|
|
|
|
|
var updateScore = function(ev) {
|
2015-11-01 23:53:09 -06:00
|
|
|
var curScore = parseInt($scoreValue.textContent);
|
2014-12-18 21:01:12 -06:00
|
|
|
curScore += ev.detail.bodyLength;
|
|
|
|
curScore.textContent = curScore;
|
|
|
|
|
|
|
|
if (evDetail.score == Snake.currentLevel.targetScore)
|
|
|
|
nextLevel(); };
|
|
|
|
|
|
|
|
$canvas.on('score', updateScore);
|
|
|
|
|
|
|
|
|
|
|
|
window.onload = initializePage;
|
|
|
|
|