(function() { "use strict"; var LevelScene = function(level) { this.initialize(level); } var p = LevelScene.prototype = new creatine.Scene(); p.Scene_initialize = p.initialize; p.initialize = function(level) { this.Scene_initialize(); this.level = level; this.lastTick = 1; this.time = 0; registry.time = 0; this.timeToNextSheepSound = Math.random()*SHEEP_SOUND_INTERVAL; this.timeToNextWolfSound = 0; this.endgame = false; this.layerObject = new createjs.Container(); this.layerUI = new createjs.Container(); this.layerBackground = new createjs.Container(); // MAP registry.map = new creatine.TMXMap(loader.getResult(this.level['map'])); var background = registry.map.getLayerByName('background'); background.cache(0, 0, canvas.width, canvas.height); var overlay = registry.map.getLayerByName('overlay'); overlay.cache(0, 0, canvas.width, canvas.height); var animations = registry.map.getLayerByName('animations'); var tutorial = registry.map.getLayerByName('tutorial'); // registry.map.cache(0, 0, 800, 600) this.layerBackground.addChild(background); this.layerBackground.addChild(overlay); this.layerBackground.addChild(animations); console.log(tutorial); if (tutorial.imagePath.length > 0) this.layerBackground.addChild(tutorial); registry.wolfSpawnCooldown = 0; registry.wolfEntities = []; // SYSTEMS this.systemFlock = new FlockSystem(); this.systemCollision = new CollisionSystem(); this.systemMovement = new MovementSystem(); this.systemFactory = new FactorySystem(); this.systemButcher = new ButcherSystem(); this.systemPredator = new PredatorSystem(); // ENTITIES registry.sheepEntities = this.systemFactory.createSheeps(this.level['sheeps']); for (var i=0; i 0) { if (this.timeToNextWolfSound < 0 && !this.endgame) { jukebox.playWolf(); this.timeToNextWolfSound += Math.random()*(WOLF_SOUND_INTERVAL-WOLF_SOUND_MIN_INTERVAL)+ WOLF_SOUND_MIN_INTERVAL; } else { this.timeToNextWolfSound -= event.fdelta; } } if (this.timeToNextSheepSound < 0 && !this.endgame) { jukebox.playSheep(); this.timeToNextSheepSound += Math.random()*(SHEEP_SOUND_INTERVAL-SHEEP_SOUND_MIN_INTERVAL)+ SHEEP_SOUND_MIN_INTERVAL; } this.timeToNextSheepSound -= event.fdelta; } p.onLeftClick = function(event) { for (var i=registry.wolfEntities.length-1; i>=0; i--) { var wolf = registry.wolfEntities[i]; var d = dist(wolf.display.x, wolf.display.y, stage.mouseX, stage.mouseY); if (d < WOLF_FLEE_DISTANCE) { var this_ = this; createjs.Tween.get(wolf.display) .to({alpha:0, rotation: 720, scaleX: 2, scaleY: 2}, 500) .call(function() { this_.layerObject.removeChild(wolf.display); }); registry.wolfEntities.splice(i, 1); } } } p.onSceneEnter = function(event) { this.registerEvents(); } p.onSceneResume = function(event) { this.registerEvents(); } p.onScenePause = function(event) { this.unregisterEvents(); } p.onButtonPause = function(event) { director.push( new PauseBox(), new creatine.transitions.MoveIn( creatine.LEFT, null, 200 ) ) } p.onButtonBack = function(event) { director.replace( new MenuScene(), new creatine.transitions.Scroll(creatine.RIGHT) ); } window.LevelScene = LevelScene; }());