home *** CD-ROM | disk | FTP | other *** search
Wrap
package { import com.kongregate.as3.client.KongregateAPI; import flash.display.Bitmap; import flash.display.MovieClip; import flash.display.SimpleButton; import flash.display.Sprite; import flash.display.StageScaleMode; import flash.events.Event; import flash.events.KeyboardEvent; import flash.events.MouseEvent; import flash.media.Sound; import flash.media.SoundChannel; import flash.net.URLRequest; import flash.net.navigateToURL; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; import flash.ui.Keyboard; import flash.utils.Timer; import game.Game; import game.GameObject; import game.ObjectCreatedEvent; import gamegraphics.GameGraphics; import gamegraphics.GameText; import mochi.MochiScores; import mochi.MochiServices; public dynamic class Main extends MovieClip { private var theGame:Game; public var textForm:TextFormat; private var cloud1ImageClass:Class; private var cloud3ImageClass:Class; private var hsButton:SimpleButton; private var scores:TextField; private var music:Sound; private var maxgamesLogo:Class; private var muteButton:SimpleButton; private var paused:Boolean = false; private var maxgameButton:SimpleButton; private var bgClass:Class; private var soundON:Class; private var sprite:Sprite; private var maxgameClip:MovieClip; private var sunImageClass:Class; private var musicClass:Class; private var cloud2ImageClass:Class; private var kongregate:KongregateAPI; private var swampImageClass:Class; private var menu:Sprite; private var soundOFF:Class; private var maxgames:Class; private var graphs:GameGraphics; private var muted:Boolean = false; private var soundChannel:SoundChannel; public function Main() { musicClass = Main_musicClass; bgClass = Main_bgClass; sunImageClass = Main_sunImageClass; swampImageClass = Main_swampImageClass; cloud1ImageClass = Main_cloud1ImageClass; cloud2ImageClass = Main_cloud2ImageClass; cloud3ImageClass = Main_cloud3ImageClass; soundON = Main_soundON; soundOFF = Main_soundOFF; maxgames = Main_maxgames; maxgamesLogo = Main_maxgamesLogo; super(); MochiServices.connect("bba288c2da590682",this); stage.scaleMode = StageScaleMode.NO_SCALE; stage.tabChildren = false; playAdd(null); } private function onKeyUp(event:KeyboardEvent) : void { if(event.keyCode == 39) { theGame.stopMoveRight(); } if(event.keyCode == 37) { theGame.stopMoveLeft(); } } override public function stop() : void { super.stop(); stage.removeEventListener(KeyboardEvent.KEY_DOWN,onKeyDown); stage.removeEventListener(KeyboardEvent.KEY_UP,onKeyUp); } private function setBorders() : void { var border:Sprite = new Sprite(); border.graphics.lineStyle(1); border.graphics.drawRect(0,0,640,480); addChild(border); scores = new TextField(); scores.autoSize = TextFieldAutoSize.LEFT; scores.text = "Scores: " + theGame.scores; scores.x = 30; scores.y = 95; addChild(scores); scores.setTextFormat(textForm); var muteImage:Bitmap = new soundOFF(); var muteImage2:Bitmap = new soundON(); muteButton = new SimpleButton(muteImage,muteImage,muteImage,muteImage2); muteButton.addEventListener("click",mute); muteButton.x = 30; muteButton.y = 120; addChild(muteButton); } private function onKeyDown(event:KeyboardEvent) : void { if(paused == false) { if(event.keyCode == 39) { theGame.moveRight(); } if(event.keyCode == 37) { theGame.moveLeft(); } } if(event.keyCode == Keyboard.SPACE) { if(paused == true) { resume(); } else { pause(); } } } private function makeHSButton() : SimpleButton { var text:TextField = new TextField(); text.text = "Highscores"; text.textColor = 14483970; text.autoSize = TextFieldAutoSize.CENTER; textForm.underline = true; text.setTextFormat(textForm); textForm.underline = false; return new SimpleButton(text,text,text,text); } public function playMain(event:Event) : void { if(event != null) { event.target.removeEventListener("timer",playAdd); event.target.stop(); maxgameClip.gotoAndStop(0); removeChild(maxgameClip); kongregate = new KongregateAPI(); addChild(kongregate); stage.frameRate = 70; } super.play(); stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown); stage.addEventListener(KeyboardEvent.KEY_UP,onKeyUp); if(paused == true) { resume(); pause(); return; } music = new musicClass(); soundChannel = music.play(0,999); textForm = new TextFormat(); textForm.size = 14; textForm.bold = true; textForm.font = "comic sans ms"; theGame = new Game(); graphs = new GameGraphics(this,theGame); startGame(null); addSun(470,-50); addSwamps(); addCloud(10,10,0.2,0,cloud1ImageClass); addCloud(200,40,-0.5,0,cloud2ImageClass); addCloud(400,30,-0.3,0,cloud3ImageClass); setBorders(); var text:TextField = new TextField(); text.text = "Play Games to the Max\nat MaxGames.com"; text.textColor = 1052927; text.setTextFormat(textForm); text.autoSize = TextFieldAutoSize.CENTER; maxgameButton.hitTestState = text; maxgameButton.downState = text; maxgameButton.upState = text; maxgameButton.overState = text; maxgameButton.x = 250; maxgameButton.y = 200; } private function addSwamps() : void { graphs.addImage(new GameObject(0,388,640,92),swampImageClass); } private function mute(event:Event) : void { var muteImage:Bitmap = new soundOFF(); var muteImage2:Bitmap = new soundON(); if(muted == false) { muted = true; muteButton.upState = muteImage2; muteButton.overState = muteImage2; muteButton.downState = muteImage2; soundChannel.stop(); } else { muted = false; muteButton.upState = muteImage; muteButton.overState = muteImage; muteButton.downState = muteImage; soundChannel = music.play(0,999); } } private function addCloud(x:Number, y:Number, vx:Number, vy:Number, imageClass:Class) : void { var obj:GameObject = new GameObject(x,y,100,50,vx,vy); Game.timer.addEventListener("timer",obj.move); graphs.addObject(new ObjectCreatedEvent(obj,imageClass)); } private function openMaxGames(event:Event) : void { var url:String = "http://www.maxgames.com"; var request:URLRequest = new URLRequest(url); try { navigateToURL(request,"_blank"); } catch(e:Error) { trace("Error occurred!"); } } private function setScores(event:Event) : void { var format:TextFormat = null; if(theGame.scores > 0) { format = new TextFormat(); format.font = "comic sans ms"; format.size = 13; format.color = 43520; format.bold = true; new GameText("+" + String(theGame.lastScores),theGame.jumper.x,theGame.jumper.y - 50,format,1000); } scores.text = "Scores: " + theGame.scores; scores.setTextFormat(textForm); } private function resume(event:Event = null) : void { removeChild(menu); theGame.resume(); paused = false; stage.focus = stage; } private function overObstacle(event:Event) : void { var format:TextFormat = new TextFormat(); format.font = "comic sans ms"; format.size = 13; format.color = 43520; format.bold = true; new GameText("Over!\nBonus +1",theGame.jumper.x,theGame.jumper.y - 50,format,1000); kongregate.stats.submit("Bonus",theGame.overWithoutHit); kongregate.stats.submit("OverJump",1); } override public function play() : void { if(paused == true) { playMain(null); return; } stage.frameRate = 24; maxgameClip = new maxgames(); addChild(maxgameClip); maxgameClip.soundTransform.volume = 0; maxgameClip.play(); var timer:Timer = new Timer(10000); timer.addEventListener("timer",playMain); timer.start(); } private function showHighScores(event:Event) : void { paused = true; MochiScores.showLeaderboard({"boardID":"d3871afe93a41f3b"}); } public function playAdd(event:Event) : void { var img:Bitmap = new maxgamesLogo(); maxgameButton = new SimpleButton(img,img,img,img); maxgameButton.addEventListener("click",openMaxGames); addChild(maxgameButton); MochiAd.showPreGameAd({ "clip":root, "id":"d812496d70c65425", "res":"640x480", "background":0, "color":16711680, "outline":10855845, "no_bg":true }); } private function openHighScores(event:Event) : void { paused = true; MochiScores.showLeaderboard({ "boardID":"d3871afe93a41f3b", "score":theGame.lastGameScores }); } private function powerup(event:Event) : void { var format:TextFormat = new TextFormat(); format.font = "comic sans ms"; format.size = 13; format.color = 43520; format.bold = true; if(Game.powerup == 1) { new GameText("Double Jump!",theGame.jumper.x,theGame.jumper.y - 50,format,1000); } if(Game.powerup == 2) { new GameText("Slow Boards!",theGame.jumper.x,theGame.jumper.y - 50,format,1000); } if(Game.powerup == 3) { new GameText("Double Boards!",theGame.jumper.x,theGame.jumper.y - 50,format,1000); } } private function gameOver(event:Event) : void { menu = new Sprite(); var text:TextField = new TextField(); text.textColor = 0; text.text = "Game Over!\n\nScores: " + theGame.lastGameScores + "\n\nPress space to restart."; kongregate.stats.submit("Scores",theGame.lastGameScores); text.y = 40; text.width = 345; text.autoSize = TextFieldAutoSize.CENTER; menu.x = 100; menu.y = 100; menu.addChild(text); text.setTextFormat(textForm); menu.graphics.beginFill(14540253,0.9); menu.graphics.drawRoundRect(0,0,440,200,50,50); menu.graphics.endFill(); menu.addChild(maxgameButton); if(hsButton == null) { hsButton = makeHSButton(); } hsButton.x = 135; hsButton.y = 97; hsButton.removeEventListener("click",showHighScores); hsButton.addEventListener("click",openHighScores); addChild(menu); paused = true; } private function hitObstacle(event:Event) : void { var format:TextFormat = new TextFormat(); format.font = "comic sans ms"; format.size = 13; format.color = 12255232; format.bold = true; new GameText("Hit :(\nBonus -1",theGame.jumper.x,theGame.jumper.y - 50,format,1000); } private function addSun(x:int, y:int) : void { graphs.addImage(new GameObject(x,y,200,200),sunImageClass,150,true); } private function pause(event:Event = null) : void { if(event == null) { theGame.pause(); } menu = new Sprite(); var text:TextField = new TextField(); text.textColor = 0; text.y = 20; text.text = "Controls:\nUse the arrow keys to move.\n\nTry to jump over the ball\nin the middle to increase your scores.\nThe birds give you powerups\n\nPress space to continue."; text.width = 440; text.autoSize = TextFieldAutoSize.CENTER; menu.x = 100; menu.y = 100; menu.addChild(text); text.setTextFormat(textForm); menu.graphics.beginFill(14540253,0.9); menu.graphics.drawRoundRect(0,0,440,200,50,50); menu.graphics.endFill(); menu.addChild(maxgameButton); if(hsButton == null) { hsButton = makeHSButton(); } hsButton.x = 275; hsButton.y = 10; hsButton.removeEventListener("click",openHighScores); hsButton.addEventListener("click",showHighScores); addChild(menu); paused = true; } private function onMouseMove(event:MouseEvent) : void { } public function startGame(event:Event) : void { theGame.addEventListener("pause",pause); theGame.addEventListener("gameover",gameOver); theGame.addEventListener("continue",resume); theGame.addEventListener("scoresChanged",setScores); theGame.addEventListener("obstacleTouched",hitObstacle); theGame.addEventListener("wentOver",overObstacle); theGame.addEventListener("powerupped",powerup); theGame.start(); pause(); } } }