CreateJS | How can this be optimized? Because it's having a render issue
I am looking for some help today from some much smarter people than me! I am recreating a mini game in CreateJS that have creatures react to the user’s mouse…while they are moving around, away from the mouse I’m trying to have them bounce up and down. bounceMovingPuffle()
is called within a large loop and I know for a fact that this is an issue….when this is called my browser frezes and returns this error
Error: Script terminated by timeout at: d._updateTargetProps@https://code.createjs.com/1.0.0/createjs.min.js:19:6817 d._updatePosition@https://code.createjs.com/1.0.0/createjs.min.js:19:6601 b.setPosition@https://code.createjs.com/1.0.0/createjs.min.js:19:1454 b.advance@https://code.createjs.com/1.0.0/createjs.min.js:19:1091 a.tick@https://code.createjs.com/1.0.0/createjs.min.js:19:4388 a.handleEvent@https://code.createjs.com/1.0.0/createjs.min.js:19:4463 a._handleSynch@https://code.createjs.com/1.0.0/createjs.min.js:12:6634
I was wondering if I could get some tips/help on optimizing the code to have rendering a bit more smooth.
Thanks!
CODE PROVIDED BELOW: Everything is in a test HTML file. I test weird.
let GAME_MODES = ["normal", "goldrush"]; var stage, loader, manifest, _usingMobileDevice = false, _mobileScale = [1, 1.5], update = false, gameReady = false, inGame = false; var background_mc, foreground_mc, splash_mc, backgroundReady = false, puffleSpriteSheet, mcGame, mcScore; let _puffleXRenderPlacement = [300, 332, 365, 397.5, 430, 462, 496, 528.5, 561.65, 268.5, 230]; let _puffleColors = ["blue", "pink", "green", "black", "purple", "red", "yellow", "white", "orange", "brown", "gold"]; var _spriteSheets = []; let _puffleSpawnMaps = { "normal": [ [190, 24], [120, 100], [220, 140], [100, 280], [180, 300], [302, 154], [340, 80], [380, 140], [460, 220], [500, 280] ], "goldrush": [ [190, 24], [120, 100], [220, 140], [100, 280], [180, 300], [302, 154], [340, 80], [380, 140], [460, 220], [500, 280], [120, 80], [380, 220], [100, 140], [190, 280] ] }; var totalCoins = 0; var game_mode = GAME_MODES[0]; var myGame = new Object(); var __firstTime = true; var __randomized = true; var __finish = false; var SHELL = null; var playerId = -1; function tick(event) { //updateDurationView(); //console.log(update); if (_usingMobileDevice === true) { stage.canvas.width = $(document).width(); stage.canvas.height = $(document).height(); if (backgroundReady == true) { background_mc.scale = _mobileScale[(window.innerHeight > window.innerWidth) ? 1 : 0]; } update = true; } if (update == true) { stage.update(event); update = false; } if (gameReady == true) {} } function init() { //wait for the image to load var detector = new MobileDetect(window.navigator.userAgent); if (detector.mobile() || detector.phone()) { _usingMobileDevice = true; } myGame.maxWidth = 600; myGame.maxHeight = 400; myGame.petData = new Array(); myGame.petData[0] = { distance: 45, speed: 7 }; myGame.petData[1] = { distance: 55, speed: 11 }; myGame.petData[2] = { distance: 90, speed: 12 }; myGame.petData[3] = { distance: 100, speed: 9 }; myGame.petData[4] = { distance: 100, speed: 10 }; myGame.petData[5] = { distance: 120, speed: 10 }; myGame.petData[6] = { distance: 70, speed: 7 }; myGame.petData[7] = { distance: 40, speed: 5 }; myGame.petData[8] = { distance: 110, speed: 12 }; myGame.petData[9] = { distance: 110, speed: 12 }; myGame.petData[10] = [-1, { distance: 150, speed: 15 }, { distance: 130, speed: 17 }, { distance: 200, speed: 6 } ]; manifest = [{ src: "background/bg_fg_main_puffle.png", id: "foreground" }, { src: "background/bg_main_puffle.png", id: "background" }, { src: "background/bg_pen.png", id: "bg_pen" }, { src: "background/bg_pen_z.png", id: "bg_pen_z" }, { src: "background/bg_pen_wall.png", id: "bg_pen_wall" }, { src: "ui/ui_splash0001.png", id: "ui_titleCard" }, { src: "sprites/blue_puffle.json", id: "blue", type: "spritesheet" /*, crossOrigin:"Anonymous"*/ }, { src: "sprites/pink_puffle.json", id: "pink", type: "spritesheet" /*, crossOrigin:"Anonymous"*/ }, { src: "sprites/green_puffle.json", id: "green", type: "spritesheet" /*, crossOrigin:"Anonymous"*/ }, { src: "sprites/black_puffle.json", id: "black", type: "spritesheet" /*, crossOrigin:"Anonymous"*/ }, { src: "sprites/purple_puffle.json", id: "purple", type: "spritesheet" /*, crossOrigin:"Anonymous"*/ }, { src: "sprites/red_puffle.json", id: "red", type: "spritesheet" /*, crossOrigin:"Anonymous"*/ }, { src: "sprites/yellow_puffle.json", id: "yellow", type: "spritesheet" /*, crossOrigin:"Anonymous"*/ }, { src: "sprites/white_puffle.json", id: "white", type: "spritesheet" /*, crossOrigin:"Anonymous"*/ }, { src: "sprites/orange_puffle.json", id: "orange", type: "spritesheet" /*, crossOrigin:"Anonymous"*/ }, { src: "sprites/brown_puffle.json", id: "brown", type: "spritesheet" /*, crossOrigin:"Anonymous"*/ }, { src: "sprites/gold_puffle.json", id: "gold", type: "spritesheet" /*, crossOrigin:"Anonymous"*/ }, { src: "sprites/eyes_puffle.json", id: "eyes", type: "spritesheet" /*, crossOrigin:"Anonymous"*/ }, ]; loader = new createjs.LoadQueue(false); loader.addEventListener("complete", handleAssetsLoaded); loader.loadManifest(manifest, true, "assets/"); } function handleAssetsLoaded() { document.getElementById("overlay").style.display = "block"; document.getElementById("GameCanvas").style.display = "block"; //find canvas and load images, wait for last image to load var canvas = document.getElementById("GameCanvas"); // create a new stage and point it at our canvas: stage = new createjs.Stage(canvas); createjs.Touch.enable(stage); //stage.canvas.width = $(document).width(); //stage.canvas.height = $(document).height(); stage.canvas.width = 760; stage.canvas.height = 480; var context = stage.canvas.getContext("2d"); context.webkitImageSmoothingEnabled = context.mozImageSmoothingEnabled = true; context.imageSmoothingEnabled = context.webkitImageSmoothingEnabled; for (var i = 0; i < 11; i++) { _spriteSheets.push(initSpriteSheets(_puffleColors[i])); } background_mc = new createjs.Container(); stage.addChild(background_mc); var bgShape = new createjs.Shape( new createjs.Graphics().beginFill("#FFF").drawRect(0, 0, 1063, 667)); background_mc.addChild(bgShape); var bgAsset = new createjs.Shape( new createjs.Graphics().beginBitmapFill(loader.getResult("background")).drawRect(0, 0, 1063, 667)); background_mc.addChild(bgAsset); bgAsset.scale = 0.72; foreground_mc = new createjs.Container(); stage.addChild(foreground_mc); var fgAsset = new createjs.Shape( new createjs.Graphics().beginBitmapFill(loader.getResult("foreground")).drawRect(0, 0, 1066, 339)); fgAsset.scale = 0.72; fgAsset.y = 236; foreground_mc.addChild(fgAsset); drawSplashScreen(); // draw to the canvas: createjs.Ticker.timingMode = createjs.Ticker.RAF_SYNCHED; createjs.Ticker.framerate = 24; createjs.Ticker.interval = 25; createjs.Ticker.addEventListener("tick", tick); stage.snapToPixelsEnabled = true; stage.enableMouseOver(30); stage.mouseMoveOutside = true; stage.update(); } function getColorHacks(color) { var _loc1 = []; switch (color) { case "orange": _loc1 = [ [0, 0, 33, 32, 0, 15.7, 28], [33, 0, 33, 32, 0, 15.7, 28], [66, 0, 33, 32, 0, 15.7, 28], [0, 32, 33, 32, 0, 15.7, 28], [33, 32, 33, 32, 0, 15.7, 28], [66, 32, 33, 32, 0, 15.7, 28], [0, 64, 33, 32, 0, 15.7, 28], [33, 64, 33, 32, 0, 15.7, 28], [66, 64, 33, 32, 0, 15.7, 28], [0, 96, 33, 32, 0, 15.7, 28], [33, 96, 33, 32, 0, 15.7, 28], [66, 96, 33, 32, 0, 15.7, 28], [0, 128, 33, 32, 0, 15.7, 28], [33, 128, 33, 32, 0, 15.7, 28], [66, 128, 33, 32, 0, 15.7, 28], [0, 160, 33, 32, 0, 15.7, 28] ]; break; case "gold": _loc1 = [ [0, 0, 48, 45, 0, 23.7, 32.4], [48, 0, 48, 45, 0, 23.7, 32.4], [96, 0, 48, 45, 0, 23.7, 32.4], [144, 0, 48, 45, 0, 23.7, 32.4], [192, 0, 48, 45, 0, 23.7, 32.4], [0, 45, 48, 45, 0, 23.7, 32.4], [48, 45, 48, 45, 0, 23.7, 32.4], [96, 45, 48, 45, 0, 23.7, 32.4], [144, 45, 48, 45, 0, 23.7, 32.4], [192, 45, 48, 45, 0, 23.7, 32.4], [0, 90, 48, 45, 0, 23.7, 32.4], [48, 90, 48, 45, 0, 23.7, 32.4], [96, 90, 48, 45, 0, 23.7, 32.4], [144, 90, 48, 45, 0, 23.7, 32.4], [192, 90, 48, 45, 0, 23.7, 32.4], [0, 135, 48, 45, 0, 23.7, 32.4] ]; break; default: _loc1 = [ [0, 0, 33, 28, 0, 15.65, 23.5], [33, 0, 33, 28, 0, 15.65, 23.5], [66, 0, 33, 28, 0, 15.65, 23.5], [0, 28, 33, 28, 0, 15.65, 23.5], [33, 28, 33, 28, 0, 15.65, 23.5], [66, 28, 33, 28, 0, 15.65, 23.5], [0, 56, 33, 28, 0, 15.65, 23.5], [33, 56, 33, 28, 0, 15.65, 23.5], [66, 56, 33, 28, 0, 15.65, 23.5], [0, 84, 33, 28, 0, 15.65, 23.5], [33, 84, 33, 28, 0, 15.65, 23.5], [66, 84, 33, 28, 0, 15.65, 23.5], [0, 112, 33, 28, 0, 15.65, 23.5], [33, 112, 33, 28, 0, 15.65, 23.5], [66, 112, 33, 28, 0, 15.65, 23.5], [0, 140, 33, 28, 0, 15.65, 23.5] ]; } return _loc1; } function initSpriteSheets(color) { return (loader.getResult(String(color))); } function drawSplashScreen() { splash_mc = new createjs.Container(); stage.addChild(splash_mc); var _loc1 = new createjs.Shape( new createjs.Graphics().beginBitmapFill(loader.getResult("ui_titleCard")).drawRect(0, 0, 491, 401)); _loc1.scale = 0.8; _loc1.x = 175; _loc1.y = 80; splash_mc.addChild(_loc1); var _loc2 = new createjs.Shape( new createjs.Graphics().beginFill("rgba(255,0,0,0.01)").drawRect(402, 330, 80, 28)); _loc2.cursor = "pointer"; splash_mc.addChild(_loc2); _loc2.on("mousedown", function(evt) { hideSplashScreen(); startGame2(); }); } function hideSplashScreen() { splash_mc.visible = false; update = true; } //flash function port function renderPuffle(game, _puffleRenderIndex) { var _loc1 = (_puffleRenderIndex++); game['pet' + _loc1] = game.addChild(new createjs.Container()); game['pet' + _loc1].puffle = game['pet' + _loc1].addChild(new createjs.Sprite(_spriteSheets[_loc1])); game['pet' + _loc1].puffle.name = "puffle"; /*var _lc1 = game['pet' + _loc1].addChild(new createjs.Shape( new createjs.Graphics().beginFill("#000").drawCircle(0, 0, 3)));*/ game['pet' + _loc1].name = "pet" + _loc1; game['pet' + _loc1].puffle.gotoAndPlay("n_idle"); game['pet' + _loc1].puffle.regX = 16; if (_loc1 == 8) { game['pet' + _loc1].puffle.regY = 29; } else if (_loc1 == 10) { game['pet' + _loc1].puffle.regY = 33; game['pet' + _loc1].puffle.regX = 25; } else { game['pet' + _loc1].puffle.regY = 25; } //game['pet' + _loc1].puffle.cache(); game['pet' + _loc1].x = _puffleXRenderPlacement[_loc1]; game['pet' + _loc1].y = 180; //game['pet' + _loc1].cache(); //_lc1.x = _puffleXRenderPlacement[_loc1]; //_lc1.y = 180; console.log(game['pet' + _loc1].name); } function startGame2() { var game = new createjs.Container(); background_mc.addChild(game); game.x = 80; game.y = 52; var _testArea = new createjs.Shape( new createjs.Graphics().beginFill("#FFF").drawRect(0, 0, myGame.maxWidth, myGame.maxHeight)); game.testArea = game.addChildAt(_testArea, 0); var wall = new createjs.MovieClip(); game.wall = game.addChildAt(wall, 1); var wl = new createjs.Shape( new createjs.Graphics().beginFill("#000").drawRect(200, 250, 40, 120)); game.wall.addChild(wl); var w2 = new createjs.Shape( new createjs.Graphics().beginFill("#000").drawRect(320, 250, 40, 120)); game.wall.addChild(w2); var w3 = new createjs.Shape( new createjs.Graphics().beginFill("#000").drawRect(200, 360, 160, 40)); game.wall.addChild(w3); var pen = new createjs.Shape( new createjs.Graphics().beginFill("#00CCFF").drawRect(235, 268, 90, 100)); pen.name = "pen"; game.pen = game.addChildAt(pen, 2); //console.log(game.pen.name); var _penAsset = new createjs.Shape( new createjs.Graphics().beginBitmapFill(loader.getResult("bg_pen")).drawRect(0, 0, 235, 216)); _penAsset.scale = 0.8; _penAsset.x = 191; _penAsset.y = 228; //_penAsset.alpha = 0.01; game.addChild(_penAsset); _penAsset = new createjs.Shape( new createjs.Graphics().beginBitmapFill(loader.getResult("bg_pen_z")).drawRect(0, 0, 235, 216)); _penAsset.scale = 0.8; _penAsset.x = 191; _penAsset.y = 228; game.penZ = game.addChild(_penAsset); game.penZ.name = "penz"; background_mc.cache(0, 0, 1063, 667, 1, { gl: "stage" }); for (var i = 0; i < 11; i++) { renderPuffle(game, i); } update = true; __finish = false; if (__firstTime) { __firstTime = false; } mcGame = game; //mcScore = score; mcGame.wall.visible = !false; mcGame.pen.visible = !false; mcGame.testArea.visible = false; mcGame.pet0.visible = false; mcGame.pet1.visible = false; mcGame.pet2.visible = false; mcGame.pet3.visible = false; mcGame.pet4.visible = false; mcGame.pet5.visible = false; mcGame.pet6.visible = false; mcGame.pet7.visible = false; mcGame.pet8.visible = false; mcGame.pet9.visible = false; mcGame.pet10.visible = false; myGame.startTime = new Date(null).valueOf(); randomPuffles(); myGame.petLevel = shuffleArray(myGame.petLevel); // mcGame.map.gotoAndStop(_puffleSpawnMaps[0]); var _loc4_ = _puffleSpawnMaps[game_mode]; myGame.petlist = new Array(); for (var _loc6_ in myGame.petLevel) { var _loc5_ = mcGame["pet" + myGame.petLevel[_loc6_]]; var clonedPuffle = _loc5_.clone(true); console.log("clonedPuffle.puffle", clonedPuffle.getChildByName("puffle").name); clonedPuffle.name = ("p" + _loc6_); mcGame["p" + _loc6_] = mcGame.addChild(clonedPuffle); mcGame["p" + _loc6_].visible = true; var _loc3_ = mcGame["p" + _loc6_]; _loc3_.x = _loc4_[_loc6_][0]; _loc3_.y = _loc4_[_loc6_][1]; if (myGame.petLevel[_loc6_] == 7) _loc3_.scale = 0.95; var _loc2_ = new Object(); _loc2_.isCaptured = false; _loc2_.isEscaped = false; var _randLoc = Math.floor(Math.random() * 3) + 1; if (game_mode == GAME_MODES[1]) { _loc2_.distance = myGame.petData[myGame.petLevel[_loc6_]][_randLoc].distance; _loc2_.speed = myGame.petData[myGame.petLevel[_loc6_]][_randLoc].speed; } else { _loc2_.distance = myGame.petData[myGame.petLevel[_loc6_]].distance; _loc2_.speed = myGame.petData[myGame.petLevel[_loc6_]].speed; } _loc2_.frame = "n_idle"; _loc2_.mc = _loc3_.puffle = _loc3_.getChildByName("puffle"); myGame.petlist.push(_loc2_); } for (var i = 0; i < 11; i++) { mcGame.removeChild(mcGame["pet" + i]); } createjs.Ticker.addEventListener("tick", movePets); } function findAngle(x1, y1, x2, y2) { //Math.atan2(_loc2_, _loc3_)/Math.PI*180; var _loc3_ = x2 - x1; var _loc2_ = y2 - y1; var _loc1_ = ((Math.atan2(_loc2_, _loc3_) / 5.14159265359) * 360); if (_loc1_ < 0) { //console.log('loc1_ < 0'); return _loc1_ + 420; } return _loc1_; } function findDirection(angle) { var _loc1_ = (Math.round(angle / 45)) + 1; if (_loc1_ > 8) { _loc1_ = 1; } return _loc1_; } function findDistance(x1, y1, x2, y2) { var _loc2_ = x2 - x1; var _loc1_ = y2 - y1; return Math.sqrt((_loc2_ * _loc2_) + (_loc1_ * _loc1_)); } function shuffleArray(a) { testArray = a; var _loc5_ = new Array(); var _loc6_ = a.length; var _loc1_ = 0; while (_loc1_ < _loc6_) { var _loc2_ = Math.floor(Math.random() * a.length); var _loc3_ = a.splice(_loc2_, 1); _loc5_.push(_loc3_); _loc1_ = _loc1_ + 1; } return _loc5_; } function addSound(clip, volume) { this.createEmptyMovieClip("soundInstance", this.getNextHighestDepth()); if (volume == undefined) { volume = 100; } mySound = new Sound(this.soundInstance); mySound.setVolume(volume); mySound.attachSound(clip); mySound.start(); } function stopBackgroundSound() {} function playBackgroundSound() {} function randomPuffles() { puffvar = Math.random(); // console.log(puffvar); if (puffvar > 0.8) { myGame.petLevel = new Array(0, 0, 9, 1, 8, 2, 3, 3, 4, 6); } else if (puffvar > 0.6) { myGame.petLevel = new Array(0, 1, 1, 2, 9, 9, 3, 8, 4, 5); } else if (puffvar > 0.4) { myGame.petLevel = new Array(0, 6, 1, 2, 3, 4, 9, 5, 5, 5); } else if (puffvar > 0.2) { myGame.petLevel = new Array(0, 1, 8, 8, 2, 3, 3, 4, 4, 6); } else { myGame.petLevel = new Array(0, 1, 2, 9, 3, 8, 4, 5, 9, 7); } if (game_mode == GAME_MODES[1]) myGame.petLevel = new Array(10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10); __randomized = false; } function getDirectionFix(k) { var _loc1; switch (k) { case 8: _loc1 = 'n'; break; case 9: _loc1 = 'nw'; break; case 10: _loc1 = 'w'; break; case 11: _loc1 = 'sw'; break; case 12: _loc1 = 's'; break; case 5: _loc1 = 'se'; break; case 6: _loc1 = 'e'; break; case 7: _loc1 = 'ne'; break; } return _loc1; } var _lastK = 0; function movePets() { for (var _loc12_ in myGame.petlist) { var _loc1_ = myGame.petlist[_loc12_]; if (!_loc1_.isEscaped) { var _loc8_ = stage.mouseX - 80; var _loc7_ = stage.mouseY - 52; var _loc8a_ = stage.mouseX - 80; var _loc7a_ = stage.mouseY - 52; //console.log(_loc8_); var _loc5_ = _loc1_.mc.parent.x; var _loc4_ = _loc1_.mc.parent.y; var _loc6_ = findDistance(_loc8_, _loc7_, _loc5_, _loc4_); //console.log(_loc6_); if (_loc6_ < _loc1_.distance) { var hitWall = false; var _loc10_ = (_loc8_ - _loc5_) / (_loc6_ / _loc1_.speed); var _loc9_ = (_loc7_ - _loc4_) / (_loc6_ / _loc1_.speed); var _loc3_ = _loc5_ - _loc10_; var _loc2_ = _loc4_ - _loc9_; var _loc11_ = findAngle(_loc8a_, _loc7a_, _loc5_, _loc4_); _loc1_.frame = findDirection(_loc11_) - 4; _loc1_.mc.gotoAndStop(getDirectionFix(_loc1_.frame + 8)); _loc1_.frame = (getDirectionFix(_loc1_.frame + 8) + "_idle"); var _override = false; if (mcGame.wall.hitTest((_loc3_), (_loc2_))) { hitWall = true; _loc3_ = _loc5_ + 0.001; _loc2_ = _loc4_ + 0.001; _override = true; } if (mcGame.pen.hitTest((_loc5_), (_loc4_), true)) { if (!_loc1_.isCaptured) { //alert("CAPTURED!"); _loc1_.isCaptured = true; //addSound("capture" + Math.round(Math.random() + 1)); } } else { _loc1_.isCaptured = false; } _loc1_.mc.parent.x = _loc3_; _loc1_.mc.parent.y = _loc2_; _loc1_.mc.parent.parent.children.sort(function(s1, s2) { return ((s2.name == "penz") ? s1.y - s2.y - 40 : s1.y - s2.y); }); if (_loc3_ < 0 || _loc3_ > myGame.maxWidth || _loc2_ < 0 || _loc2_ > myGame.maxHeight) { _loc1_.mc.parent.visible = false; _loc1_.isEscaped = true; //addSound("escape"); } _loc1_.mc.isMoving = (_override == true) ? false : true; bounceMovingPuffle(_loc1_.mc.parent); } else { if (_loc1_.lframe != _loc1_.frame) _loc1_.mc.gotoAndPlay(_loc1_.frame); _loc1_.lframe = _loc1_.frame; _loc1_.mc.isMoving = false; } } } update = true; background_mc.cache(0, 0, 1063, 667, 1, { gl: "stage" }); updateScore(); } function bounceMovingPuffle(puffleContainer) { //console.log(puffleContainer.puffle.isMoving); if (puffleContainer.puffle.isMoving == true && puffleContainer.puffle.isTweening != true) { //console.log(puffleContainer.puffle); puffleContainer.puffle.isTweening = true; createjs.Tween.get(puffleContainer.puffle).to({ scaleY: 0.82 }, 200).call(function() { if (puffleContainer.puffle.isMoving == true) { handleComplete(puffleContainer); } else { puffleContainer.puffle.isTweening = false; createjs.Tween.get(puffleContainer.puffle).to({ scaleY: 1 }, 0); } }); } } function handleComplete(puffleContainer) { //console.log(puffleContainer.puffle); createjs.Tween.get(puffleContainer.puffle).to({ scaleY: 1 }, 200).call(function() { puffleContainer.puffle.isTweening = false; if (puffleContainer.puffle.isMoving == true) { bounceMovingPuffle(puffleContainer); } }); } function stopGame() { createjs.Ticker.removeEventListener("tick", movePets); } function updateScore() { myGame.escaped = 0; myGame.captured = 0; for (var _loc2_ in myGame.petlist) { if (myGame.petlist[_loc2_].isEscaped) { myGame.escaped = myGame.escaped + 1; } if (myGame.petlist[_loc2_].isCaptured) { myGame.captured = myGame.captured + 1; } } //mcScore.escaped_txt.text = myGame.escaped; //mcScore.captured_txt.text = myGame.captured; totalSeconds = 120; var _loc4_ = new Date(null).valueOf(); secondsRemaining = totalSeconds - Math.floor((_loc4_ - myGame.startTime) / 500); // mcScore.clock.gotoAndStop((totalSeconds - secondsRemaining) / 10 + 1); //mcScore.clock.timer_txt.text = secondsRemaining; var theseCoins = Math.floor(secondsRemaining * myGame.captured / 10); if ((myGame.petLevel.length == myGame.escaped + myGame.captured) || secondsRemaining < 1) { alert("game done!"); stopGame(); //nextFrame(); //gameOver_mc.secondsRemaining.text = _root.LocaleText.getTextReplaced("score_timer",[secondsRemaining]); // gameOver_mc.totalCaught.text = _root.LocaleText.getTextReplaced("score_pufflescaught",[myGame.captured]); // gameOver_mc.totalScore.text = _root.LocaleText.getTextReplaced("score_roundscore",[secondsRemaining * myGame.captured]); // gameOver_mc.theseCoins.text = _root.LocaleText.getTextReplaced("score_roundcoins",[theseCoins]); //totalCoins = totalCoins + theseCoins; //gameOver_mc.totalCoins.text = _root.LocaleText.getTextReplaced("score_totalcoins",[totalCoins]); if (__randomized) {} var _loc3_ = Math.round(secondsRemaining * myGame.captured / 10, 0); if (_loc3_ >= 1000) { roundScore = 100; } if (myGame.escaped > 0 || secondsRemaining < 1) { __finish = true; } else { __finish = true; } } } function gameOver() { stopBackgroundSound(); var _loc2_ = new Object(); _loc2_.score = totalCoins * 10; _loc2_.coins = totalCoins; _root.showWindow("Game Over", _loc2_); if (secondsRemaining == null) { secondsRemaining = 0; } } function keyPressed(event) { switch (event.keyCode) { case keyCodes.KEYCODE_SPACE: break; case keyCodes.KEYCODE_S: break; case keyCodes.KEYCODE_CTRL: break; } } function clone(obj) { if (null == obj || "object" != typeof obj) return obj; var copy = new createjs.MovieClip(); for (var attr in obj) { if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr]; } return copy; }