diff --git a/snake/snake-levels.js b/snake/snake-levels.js index c7cd20f..3c0ff44 100644 --- a/snake/snake-levels.js +++ b/snake/snake-levels.js @@ -7,7 +7,7 @@ // Level 1: Hello Snake! - small.push({ + small.levels.push({ "name": "Hello Snake!", "rows":10, "cols":10, "easy": { "fps": 2, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, "medium": { "fps": 4, "targetScore": 7, "growthFactor": 2, "growthFactorIncrease": 1}, @@ -26,7 +26,7 @@ 1,1,1,1,1,1,1,1,1,1]}); // Level 2: Room to Grow - small.push({ + small.levels.push({ "name": "Room to Grow", "rows":16, "cols":16, "easy": { "fps":3, "targetScore": 7, "growthFactor": 2, "growthFactorIncrease": 1}, "medium": { "fps":3, "targetScore": 7, "growthFactor": 2, "growthFactorIncrease": 1}, @@ -51,7 +51,7 @@ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}); // Level 3: North and South - small.push({ + small.levels.push({ "name": "North and South", "rows":15, "cols":15, "easy": { "fps":3, "targetScore": 6, "growthFactor": 2, "growthFactorIncrease": 1}, "medium": { "fps":3, "targetScore": 6, "growthFactor": 2, "growthFactorIncrease": 1}, @@ -75,7 +75,7 @@ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}); // Level 4: Four Small Rooms - small.push({ + small.levels.push({ "name": "Four Small Rooms","rows":15,"cols":15, "easy": { "fps":3, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, "medium": { "fps":3, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, @@ -99,7 +99,7 @@ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}); // Level 5: Polka Dots - small.push({ + small.levels.push({ "name": "Polka Dots" ,"rows":15,"cols":15, "easy": { "fps":3, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, "medium": { "fps":3, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, @@ -123,7 +123,7 @@ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}); // Level 6: Toaster Face - small.push({ + small.levels.push({ "name": "Toaster Face","rows":15,"cols":15, "easy": { "fps":3, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, "medium": { "fps":3, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, @@ -147,7 +147,7 @@ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}); // Level 7: Wierd Walls - small.push({ + small.levels.push({ "name": "Wierd Walls","rows":15,"cols":15, "easy": { "fps":3, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, "medium": { "fps":3, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, @@ -171,7 +171,7 @@ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}); // Level 8: Feast and Famine - small.push({ + small.levels.push({ "name": "Feast and Famine","rows":15,"cols":15, "easy": { "fps":3, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, "medium": { "fps":3, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, @@ -195,7 +195,7 @@ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}); // Level 1: Maze 1 - mazes.push({ + mazes.levels.push({ "name": "Maze 1","rows":15,"cols":15, "easy": { "fps":3, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, "medium": { "fps":3, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, @@ -219,7 +219,7 @@ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}); // Level 2: Spiral - mazes.push({ + mazes.levels.push({ "name": "Spiral","rows":15,"cols":15, "easy": { "fps":3, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, "medium": { "fps":3, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, @@ -244,7 +244,7 @@ // Level 3: Maze 2 - mazes.push({ + mazes.levels.push({ "name": "Maze 2","rows":17,"cols":17, "easy": { "fps":3, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, "medium": { "fps":3, "targetScore": 5, "growthFactor": 2, "growthFactorIncrease": 1}, @@ -267,8 +267,7 @@ 1,0,1,1,1,1,0,0,0,0,1,1,1,1,1,0,1, 1,0,1,0,0,0,1,1,1,1,0,0,0,1,0,0,1, 1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]} - ]); + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}); window.SnakeLevels = { "Small Rooms": small, diff --git a/snake/snake-page.js b/snake/snake-page.js new file mode 100644 index 0000000..1f7ba9c --- /dev/null +++ b/snake/snake-page.js @@ -0,0 +1,47 @@ +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. + _.each(SnakeLevels, function(levelSet, setName) { + var newHtml = "
" + setName + "
" + + "
    "; + + _.each(levelSet, function(levelData, levelIdx) { + newHtml += "
  1. " + + levelData.name + "
  2. "; }); + + newHtml += "
"; }); +}; + +var loadLevel = function(ev) { } + +var nextLevel = function() { }; + +var updateScore = function(ev) { + var curScore = parseInt(scoreValue.textContent); + curScore += ev.detail.bodyLength; + curScore.textContent = curScore; + + if (evDetail.score == Snake.currentLevel.targetScore) + nextLevel(); }; + +$canvas.on('score', updateScore); + + +// 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", loadLevel); } + +loadLevel({target: document.querySelector("#levelSelect li.selected")}); + + +window.onload = initializePage; + diff --git a/snake/snake-redesign.html b/snake/snake-redesign.html index 289138c..5c2bd23 100644 --- a/snake/snake-redesign.html +++ b/snake/snake-redesign.html @@ -4,8 +4,6 @@ - -
@@ -23,21 +21,6 @@ -->

Level Select

-
Beginner
-
    -
  1. Hello Snake!
  2. -
  3. Room to Grow
  4. -
  5. North and South
  6. -
  7. 4 Small Rooms
  8. -
  9. Polka Dots
  10. -
  11. Toaster Face
  12. -
  13. Wierd Walls
  14. -
  15. Maze 1
  16. -
  17. Spiral
  18. -
  19. Feast and Famine
  20. -
  21. Maze 2
  22. -
-
Classic Nibbles
@@ -91,40 +74,11 @@ ultralarge - + + + + - var loadLevel = function(ev) { - var levelEl = ev.target; - document.querySelector("#levelSelect li.selected").className = ""; - levelEl.className = "selected"; - var levelNum = parseInt(levelEl.getAttribute("levelNum")); - Snake.initialize(levelData[levelNum]); }; - - var nextLevel = function() { - - }; - - var updateScore = function(ev) { - var curScore = parseInt(scoreValue.textContent); - curScore += ev.detail.bodyLength; - curScore.textContent = curScore; - - if (evDetail.score == Snake.currentLevel.targetScore) - nextLevel(); }; - - canvas.addEventListener('score', updateScore); - - - // 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", loadLevel); } - - loadLevel({target: document.querySelector("#levelSelect li.selected")}); - diff --git a/snake/snake.js b/snake/snake.js index b06d5ff..4cd03cb 100644 --- a/snake/snake.js +++ b/snake/snake.js @@ -119,8 +119,7 @@ g.fillStyle = "black"; g.fillText("Press Space to begin.", 50, Math.floor(canvas.height/2), canvas.width - 100); - skipTicks = Math.ceil(1000 / fps); - else skipTicks = 150; } + skipTicks = Math.ceil(1000 / fps); } // They want the editor else { @@ -362,7 +361,7 @@ growthFactor: startGrowthFactor, growthFactorIncrease: startGFIncrease, targetScore: targetScore, - fps: fps)}); } + fps: fps}); } // Load the editor data as a JSON string from the textarea. function loadEditorLevelData() { }