From 2ac448f71e2b4257a1cbcfc62a4d201f75e975cc Mon Sep 17 00:00:00 2001 From: Hemanth Kumar Veeranki Date: Mon, 1 Aug 2016 02:38:49 +0530 Subject: [PATCH 1/6] Added a prototype for levels --- javascript/levels.js | 49 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 javascript/levels.js diff --git a/javascript/levels.js b/javascript/levels.js new file mode 100644 index 0000000..6bbdb5e --- /dev/null +++ b/javascript/levels.js @@ -0,0 +1,49 @@ +function Level(backgroundLayers, obstaclesLayer,name){ + this._backgrounds=backgroundLayers; + this.obstacleLayer = obstaclesLayer; + this._obstacles=createObstacles(obstaclesLayer); + this._name = name; + this._score = 0; +} + +Level.prototype = { + + show: function(){ + show_layer(this.obstaclesLayer); + for (layer in this.backgrounds){ + show_layer(layer); + } + }, + + hide: function(){ + hide_layer(this.obstaclesLayer); + for (layer in this.backgrounds){ + hide_layer(layer); + } + }, + + getBackgrounds(): function(){ + return this._backgrounds; + }, + + getObstacles: function(){ + return this._obstacles; + }, + + getName(): function(){ + return this._name; + }, + + getScore(): function{ + return this_score; + }, + + start(): function(){ + //Needs to be Implemented + }, + + stop(): function(){ + // Needs to be Implemented + }, + +} From 5caf4fd0115d4c4a15576350cfbc126dc69fccca Mon Sep 17 00:00:00 2001 From: Hemanth Kumar Veeranki Date: Mon, 1 Aug 2016 02:59:35 +0530 Subject: [PATCH 2/6] Added Functions in level.js --- javascript/levels.js | 43 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/javascript/levels.js b/javascript/levels.js index 6bbdb5e..9bc1e00 100644 --- a/javascript/levels.js +++ b/javascript/levels.js @@ -1,7 +1,7 @@ -function Level(backgroundLayers, obstaclesLayer,name){ - this._backgrounds=backgroundLayers; +function Level(home, backgroundLayers, obstaclesLayer){ + this._backgrounds = backgroundLayers; this.obstacleLayer = obstaclesLayer; - this._obstacles=createObstacles(obstaclesLayer); + this._obstacles = createObstacles(obstaclesLayer); this._name = name; this._score = 0; } @@ -47,3 +47,40 @@ Level.prototype = { }, } + +var all_levels,current_level; + +function getAllLevels(){ + return all_levels; +} + +function newLevel(name,backgroundLayers,obstaclesLayer){ + return new Level(name,backgroundLayers,obstaclesLayer); +} + +function AlllevelObjects(){ + // Need to be properly Modified + levels = ["level1","level2"]; + + backgrounds = { + "level1":[], + "level2":[] + }; + + obstacles = { + "level1":"obstacle for level1", + "level2":"obstacle for level2", + }; + + for(level in levels){ + all_levels[level] = newLevel(level,backgrounds[level],obstacles[level]); + } +} + +function setCurrentLevel(name){ + current_level = all_levels[name]; +} + +function getCurrentLevel(){ + return current_level; +} From 450a72a6586ee250cb0a0cf7581ec870256b9ddd Mon Sep 17 00:00:00 2001 From: Hemanth Kumar Veeranki Date: Mon, 1 Aug 2016 18:40:17 +0530 Subject: [PATCH 3/6] Improved Prototype and AlllevelObjects methods --- javascript/levels.js | 93 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 72 insertions(+), 21 deletions(-) diff --git a/javascript/levels.js b/javascript/levels.js index 9bc1e00..395e083 100644 --- a/javascript/levels.js +++ b/javascript/levels.js @@ -1,6 +1,6 @@ -function Level(home, backgroundLayers, obstaclesLayer){ - this._backgrounds = backgroundLayers; - this.obstacleLayer = obstaclesLayer; +function Level(name, backgrounds, obstacles){ + this._backgrounds = backgrounds; + this.obstacles = obstacles; this._obstacles = createObstacles(obstaclesLayer); this._name = name; this._score = 0; @@ -9,17 +9,27 @@ function Level(home, backgroundLayers, obstaclesLayer){ Level.prototype = { show: function(){ - show_layer(this.obstaclesLayer); - for (layer in this.backgrounds){ - show_layer(layer); + + for (background in this.backgrounds){ + show_layer(background["layer"]); + } + + for(obstacle in this.obstacles){ + show_layer(obstacle["layer"]); } + }, hide: function(){ - hide_layer(this.obstaclesLayer); - for (layer in this.backgrounds){ - hide_layer(layer); + + for (background in this.backgrounds){ + hide_layer(background["layer"]); + } + + for(obstacle in this.obstacles){ + hide_layer(obstacle["layer"]); } + }, getBackgrounds(): function(){ @@ -59,21 +69,62 @@ function newLevel(name,backgroundLayers,obstaclesLayer){ } function AlllevelObjects(){ - // Need to be properly Modified - levels = ["level1","level2"]; - - backgrounds = { - "level1":[], - "level2":[] - }; - obstacles = { - "level1":"obstacle for level1", - "level2":"obstacle for level2", + + var all_level_specifications = { + "desert":{ + + "obstacles":[ + { + "layer": "cactus", + "velocity": 10, + }, + ], + + "backgrounds":[ + { + "layer" : "DayAndNight", + "velocity" : -20 + }, + { + "layer" : "background", + "velocity" : -7 + }, + { + "layer" : "SunAndMoon", + "velocity" : 1 + }, + { + "layer" : "sky", + "velocity" : 0 + } + ] + + }, + + "gotham":{ + + "obstacles":[ + { + "layer":"Gotham_Obstacles", + "velocity": -7 + }, + ], + + "backgrounds":[ + { + "layer":"Gotham", + "velocity": -7 + } + ], + }, + }; - for(level in levels){ - all_levels[level] = newLevel(level,backgrounds[level],obstacles[level]); + + for( level in all_level_specifications ){ + specs = all_level_specifications[level]; + all_levels[level] = newLevel(level,specs["backgrounds"],specs["obstacles"]); } } From 40de265ebf686a1aa42d6fe0d860eefbca946add Mon Sep 17 00:00:00 2001 From: Hemanth Kumar Veeranki Date: Thu, 4 Aug 2016 15:57:22 +0530 Subject: [PATCH 4/6] Made Indentation consistent --- javascript/levels.js | 56 ++++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/javascript/levels.js b/javascript/levels.js index 395e083..7c6f9ec 100644 --- a/javascript/levels.js +++ b/javascript/levels.js @@ -75,29 +75,29 @@ function AlllevelObjects(){ "desert":{ "obstacles":[ - { - "layer": "cactus", - "velocity": 10, - }, + { + "layer": "cactus", + "velocity": 10, + } ], "backgrounds":[ - { - "layer" : "DayAndNight", - "velocity" : -20 - }, - { - "layer" : "background", - "velocity" : -7 - }, - { - "layer" : "SunAndMoon", - "velocity" : 1 - }, - { - "layer" : "sky", - "velocity" : 0 - } + { + "layer" : "DayAndNight", + "velocity" : -20 + }, + { + "layer" : "background", + "velocity" : -7 + }, + { + "layer" : "SunAndMoon", + "velocity" : 1 + }, + { + "layer" : "sky", + "velocity" : 0 + } ] }, @@ -105,17 +105,17 @@ function AlllevelObjects(){ "gotham":{ "obstacles":[ - { - "layer":"Gotham_Obstacles", - "velocity": -7 - }, + { + "layer":"Gotham_Obstacles", + "velocity": -7 + } ], "backgrounds":[ - { - "layer":"Gotham", - "velocity": -7 - } + { + "layer":"Gotham", + "velocity": -7 + } ], }, From 56b349fdfbca7fb7f165724e4a8bce044e2f625b Mon Sep 17 00:00:00 2001 From: Hemanth Kumar Veeranki Date: Thu, 4 Aug 2016 18:34:06 +0530 Subject: [PATCH 5/6] Made all_level_specifications Global --- javascript/levels.js | 108 ++++++++++++++++++++++--------------------- 1 file changed, 55 insertions(+), 53 deletions(-) diff --git a/javascript/levels.js b/javascript/levels.js index 7c6f9ec..ef72b29 100644 --- a/javascript/levels.js +++ b/javascript/levels.js @@ -60,6 +60,59 @@ Level.prototype = { var all_levels,current_level; +// Specifications of any new level must be given here + +var all_level_specifications = { + "desert":{ + + "obstacles":[ + { + "layer": "cactus", + "velocity": 10, + } + ], + + "backgrounds":[ + { + "layer" : "DayAndNight", + "velocity" : -20 + }, + { + "layer" : "background", + "velocity" : -7 + }, + { + "layer" : "SunAndMoon", + "velocity" : 1 + }, + { + "layer" : "sky", + "velocity" : 0 + } + ] + + }, + + "gotham":{ + + "obstacles":[ + { + "layer":"Gotham_Obstacles", + "velocity": -7 + } + ], + + "backgrounds":[ + { + "layer":"Gotham", + "velocity": -7 + } + ], + }, + +}; + + function getAllLevels(){ return all_levels; } @@ -68,61 +121,10 @@ function newLevel(name,backgroundLayers,obstaclesLayer){ return new Level(name,backgroundLayers,obstaclesLayer); } -function AlllevelObjects(){ - - - var all_level_specifications = { - "desert":{ - - "obstacles":[ - { - "layer": "cactus", - "velocity": 10, - } - ], - - "backgrounds":[ - { - "layer" : "DayAndNight", - "velocity" : -20 - }, - { - "layer" : "background", - "velocity" : -7 - }, - { - "layer" : "SunAndMoon", - "velocity" : 1 - }, - { - "layer" : "sky", - "velocity" : 0 - } - ] - - }, - - "gotham":{ - - "obstacles":[ - { - "layer":"Gotham_Obstacles", - "velocity": -7 - } - ], - - "backgrounds":[ - { - "layer":"Gotham", - "velocity": -7 - } - ], - }, - - }; - +function AlllevelObjects(){ for( level in all_level_specifications ){ + // This function generates all levels from the given specifications specs = all_level_specifications[level]; all_levels[level] = newLevel(level,specs["backgrounds"],specs["obstacles"]); } From a6d2da1eb060485e57228fb063e068ed66f39fab Mon Sep 17 00:00:00 2001 From: Hemanth Kumar Veeranki Date: Fri, 5 Aug 2016 18:16:08 +0530 Subject: [PATCH 6/6] Made level generation to execute when windows is loaded --- javascript/levels.js | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/javascript/levels.js b/javascript/levels.js index ef72b29..2998da6 100644 --- a/javascript/levels.js +++ b/javascript/levels.js @@ -121,15 +121,6 @@ function newLevel(name,backgroundLayers,obstaclesLayer){ return new Level(name,backgroundLayers,obstaclesLayer); } - -function AlllevelObjects(){ - for( level in all_level_specifications ){ - // This function generates all levels from the given specifications - specs = all_level_specifications[level]; - all_levels[level] = newLevel(level,specs["backgrounds"],specs["obstacles"]); - } -} - function setCurrentLevel(name){ current_level = all_levels[name]; } @@ -137,3 +128,10 @@ function setCurrentLevel(name){ function getCurrentLevel(){ return current_level; } + +window.onload = function() { + for (level in all_level_specifications) { + specs = all_level_specifications[level]; + all_levels[level] = newLevel(level, specs["backgrounds"], specs["obstacles"]); + } +}