This year's flash game is "BactoCooler".
The story of the game will be here soon.
Programming, music, animation and graphics by Alihan Çelikcan. The running BactoCooler guy was drawn by Fatih Gül.
We will give awards to high scorers in the Jamboree. High scores are stored on your computer so you will have to play the game again in the Jamboree you can tweet your high scores [http://twitter.com/AUC_TURKEY @AUC_TURKEY] and/or improve your score at the Jamboree. Train hard and have fun.
//platform var platform:MovieClip = _root.createEmptyMovieClip("platform", _root.getNextHighestDepth()); var pID:Number = 20; var pLeft:Number = 0; var pRight:Number = pID * 40; var pFall:Number = 57; var pInc:Number = 3; //speed var speedTimer:Number = 0; var speedWait:Number = 48; var speedInc:Number = .2; var speed:Number = 7; var minSpeed:Number = 5; //jump var fallSpeed:Number = 0; var jumpSpeed:Number = 10; var floor:Number = 250; var jump:Number = 0; var doubleJump:Boolean = false; var gravity:Number = .5; var plat_arr:Array = [pLeft, 250, pRight]; var signal:Boolean = true; //animation var animFrame:Number = 0; igeman_mc.stop(); igeman_mc.run.stop(); //fps var fps:Number = 48; var frames:Number = 0; var startTime:Number = 0; //fire var nextFire:Number = random(5) + 20; //ice var ices:MovieClip = _root.createEmptyMovieClip("ices", _root.getNextHighestDepth()); var iceUse:Number = 1; var iceGiven:Number = 1; var iceReady:Boolean = true; var iceCooldown:Number = 0; var iceFloor:Number = 0; var iceRight:Number = 0; var iceWait:Number = 120; //music var doMute:Boolean = true; var firstMute:Number = mute_mc.getDepth(); mute_mc.swapDepths(_root.getNextHighestDepth()); if (snd) { mute_mc.gotoAndStop(1); } else { mute_mc.gotoAndStop(2); } var loop_snd:Sound = new Sound(this); var pauseTime:Number = 2000; var pause:Number; loop_snd.onSoundComplete = processPause; loop_snd.attachSound("music"); function loopSound() { clearInterval(pause); loop_snd.start(0,1); } function processPause() { pause = setInterval(loopSound, pauseTime); } if (snd) { loopSound(); } mute_btn.onPress = function() { if (snd) { pos = loop_snd.position / 1000; loop_snd.stop(); mute_mc.gotoAndStop(2); } else { loop_snd.start(pos); mute_mc.gotoAndStop(1); } snd = !snd; }; //pause var doPause:Boolean = true; var firstPause:Number = pause_mc.getDepth(); pause_mc.swapDepths(_root.getNextHighestDepth()); var paused:Boolean = false; pause_btn.onPress = function() { if (paused) { pause_mc.gotoAndStop(1); } else { pause_mc.gotoAndStop(2); } paused = !paused; }; //game over var over:Boolean = false; var score:Number = 0; var minTemp:Number = Infinity; //the Code for (var i:Number = 0; i < pID; i++) { var newPlat:MovieClip = platform.attachMovie("platform", "platform_" + i + "_mc", platform.getNextHighestDepth()); newPlat._x = i * 40; newPlat._y = 250; if (--nextFire == 0) { var newFire:MovieClip = platform.attachMovie("fire", "fire_" + pID + "_mc", platform.getNextHighestDepth()); nextFire = random(12) + 3; newFire._x = newPlat._x + 20; newFire._y = newPlat._y + 10; newFire.onEnterFrame = function() { if (paused) { return; } if (igeman_mc.hitTest(this._x + platform._x, this._y - 50, true)) { speed -= .4; } if (platform._x < -this._x - 80) { this.removeMovieClip(); } }; } newPlat.onEnterFrame = function() { if (paused) { return; } this.gotoAndStop(Math.max(1, (200 - (int(speed * 8))))); if (platform._x < -this._x - 80) { this.removeMovieClip(); } }; } onEnterFrame = function () { //mute if (Key.isDown(77)) { if (doMute) { mute_btn.onPress(); doMute = false; } } else { doMute = true; } //pause if (Key.isDown(80)) { if (doPause) { pause_btn.onPress(); doPause = false; } } else { doPause = true; } if (paused) { return; } var currentTime:Number = (getTimer() - startTime) / 1000; frames++; if (currentTime > 1) { fps = Math.floor((frames / currentTime) * 10.0) / 10.0; startTime = getTimer(); frames = 0; } if (signal && igeman_mc._x - platform._x + 20 > plat_arr[0]) { floor = plat_arr[1]; plat_arr = plat_arr.slice(2); signal = !signal; realFloor = floor; } if (!signal && igeman_mc._x - platform._x - 20 > plat_arr[0]) { floor = 800; plat_arr = plat_arr.slice(1); signal = !signal; realFloor = floor; } if (igeman_mc._x - platform._x - 10 < iceRight) { floor = Math.min(realFloor, iceFloor); if (floor == iceFloor && !jump) { speedInc = 1.2; } else { speedInc = .2; } } else { speedInc = .2; floor = realFloor; } if (!over) { if (platform._x <= -pLeft + 550) { addPlatform(); pFall += pInc; } if (++speedTimer >= speedWait) { speedTimer = 0; speed += speedInc; } if (speed < minSpeed) { speed = minSpeed; } platform._x -= speed * 12 / 25; ices._x -= speed * 12 / 25; animFrame = (animFrame + speed * 25 / 120) % igeman_mc.run._totalframes; igeman_mc.run.gotoAndStop(int(animFrame)); if (!jump && floor > igeman_mc._y + 95 / 2) { fallSpeed = 0; jump = 1; } if (Key.isDown(Key.UP)) { if (jump == 0) { fallSpeed = -jumpSpeed; jump++; } if (doubleJump == true) { fallSpeed = -jumpSpeed; jump++; doubleJump = false; } } else if (jump == 1) { doubleJump = true; } if (floor + 1 < igeman_mc._y + 95 / 2) { over = true; ices.removeMovieClip(); } } if (jump || over) { igeman_mc._y += fallSpeed += gravity; if (igeman_mc._y > floor - 95 / 2 && !over) { jump = 0; doubleJump = false; igeman_mc._y = floor - 95 / 2; } } if (jump) { igeman_mc.gotoAndStop(2); animFrame = 25; } else { igeman_mc.gotoAndStop(1); } var dist:Number = Math.floor((-platform._x) / 50); //ice if (dist >= iceGiven * iceWait) { iceGiven++; iceUse++; } if (iceCooldown > 0) { iceCooldown--; } if (Key.isDown(Key.SPACE)) { if (iceReady && iceUse && !iceCooldown) { iceCooldown = 24; iceReady = false; iceUse--; iceRight = -platform._x + igeman_mc._x + 300; var newIce:MovieClip = ices.attachMovie("ice", "ice", ices.getNextHighestDepth()); newIce._x = -platform._x + igeman_mc._x; newIce._y = igeman_mc._y + 95 / 2; iceFloor = newIce._y; newIce.onEnterFrame = function() { if (paused) { return; } if (this._x < -300 - ices._x) { this.removeMovieClip(); } }; } } else { iceReady = true; } //ui //fps_txt.text = (Math.round(fps * 10) / 10); speed_txt.text = (Math.round(speed * 10) / 10); dist_txt.text = dist; special_txt.text = iceUse; special_mc._xscale = 100 - (iceGiven * iceWait - dist) / iceWait * 100; //temp_txt.text = (200 - (int(speed * 8))); var temp:Number = (200 - (int(speed * 8))); minTemp = Math.min(minTemp, temp); thermometer_mc.gotoAndStop(Math.max(1, temp)); bg_mc.gotoAndStop(Math.max(1, temp)); if (igeman_mc._y > 400) { over = true; loop_snd.stop(); platform.removeMovieClip(); ices.removeMovieClip(); score = dist * 25 + Math.pow(Math.min(Math.max(0, 144 - minTemp), 144), 2); mute_mc.swapDepths(firstMute); pause_mc.swapDepths(firstPause); nextFrame(); delete onEnterFrame; } }; function addPlatform() { var h:Number = random(150) + 200; var len:Number = random(10) + 1; var moving:Boolean = false; pLeft = pRight + pFall; pRight = pLeft + len * 40; plat_arr.push(pLeft); plat_arr.push(h); plat_arr.push(pRight); if (len > 4 && !(random(5))) { moving = true; } for (var i:Number = 0; i < len; i++) { var newPlat:MovieClip = platform.attachMovie("platform", "platform_" + pID + "_mc", platform.getNextHighestDepth()); newPlat._x = i * 40 + pLeft; newPlat._y = h; if (!moving && --nextFire == 0) { var newFire:MovieClip = platform.attachMovie("fire", "fire_" + pID + "_mc", platform.getNextHighestDepth()); nextFire = random(12) + 3; newFire._x = newPlat._x + 20; newFire._y = newPlat._y + 10; newFire.onEnterFrame = function() { if (paused) { return; } if (this.hitTest(ices)) { this.removeMovieClip(); } if (igeman_mc.hitTest(this._x + platform._x, this._y - 50, true)) { speed -= .4; } if (platform._x < -this._x - 80) { this.removeMovieClip(); } }; pID++; } newPlat.onEnterFrame = function() { if (paused) { return; } this.gotoAndStop(Math.max(1, (200 - (int(speed * 8))))); if (platform._x < -this._x - 80) { this.removeMovieClip(); } }; } if (moving) { var newFire:MovieClip = platform.attachMovie("fire", "fire_" + pID + "_mc", platform.getNextHighestDepth()); newFire._x = pLeft + random(len) * 40 + 20; newFire._y = h + 10; newFire.left = pLeft + 20; newFire.right = pRight - 20; newFire.speed = 2; newFire.onEnterFrame = function() { if (paused) { return; } if (this.hitTest(ices)) { this.removeMovieClip(); } if (this._x < this.left || this._x > this.right) { this.speed *= -1; } this._x += this.speed; if (igeman_mc.hitTest(this._x + platform._x, this._y - 50, true)) { speed -= .4; } if (platform._x < -this._x - pRight + pLeft - 80) { this.removeMovieClip(); } }; } }