home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Diversos / Jumper.swf / scripts / Main.as < prev    next >
Encoding:
Text File  |  2008-09-05  |  15.0 KB  |  483 lines

  1. package
  2. {
  3.    import com.kongregate.as3.client.KongregateAPI;
  4.    import flash.display.Bitmap;
  5.    import flash.display.MovieClip;
  6.    import flash.display.SimpleButton;
  7.    import flash.display.Sprite;
  8.    import flash.display.StageScaleMode;
  9.    import flash.events.Event;
  10.    import flash.events.KeyboardEvent;
  11.    import flash.events.MouseEvent;
  12.    import flash.media.Sound;
  13.    import flash.media.SoundChannel;
  14.    import flash.net.URLRequest;
  15.    import flash.net.navigateToURL;
  16.    import flash.text.TextField;
  17.    import flash.text.TextFieldAutoSize;
  18.    import flash.text.TextFormat;
  19.    import flash.ui.Keyboard;
  20.    import flash.utils.Timer;
  21.    import game.Game;
  22.    import game.GameObject;
  23.    import game.ObjectCreatedEvent;
  24.    import gamegraphics.GameGraphics;
  25.    import gamegraphics.GameText;
  26.    import mochi.MochiScores;
  27.    import mochi.MochiServices;
  28.    
  29.    public dynamic class Main extends MovieClip
  30.    {
  31.        
  32.       
  33.       private var theGame:Game;
  34.       
  35.       public var textForm:TextFormat;
  36.       
  37.       private var cloud1ImageClass:Class;
  38.       
  39.       private var cloud3ImageClass:Class;
  40.       
  41.       private var hsButton:SimpleButton;
  42.       
  43.       private var scores:TextField;
  44.       
  45.       private var music:Sound;
  46.       
  47.       private var maxgamesLogo:Class;
  48.       
  49.       private var muteButton:SimpleButton;
  50.       
  51.       private var paused:Boolean = false;
  52.       
  53.       private var maxgameButton:SimpleButton;
  54.       
  55.       private var bgClass:Class;
  56.       
  57.       private var soundON:Class;
  58.       
  59.       private var sprite:Sprite;
  60.       
  61.       private var maxgameClip:MovieClip;
  62.       
  63.       private var sunImageClass:Class;
  64.       
  65.       private var musicClass:Class;
  66.       
  67.       private var cloud2ImageClass:Class;
  68.       
  69.       private var kongregate:KongregateAPI;
  70.       
  71.       private var swampImageClass:Class;
  72.       
  73.       private var menu:Sprite;
  74.       
  75.       private var soundOFF:Class;
  76.       
  77.       private var maxgames:Class;
  78.       
  79.       private var graphs:GameGraphics;
  80.       
  81.       private var muted:Boolean = false;
  82.       
  83.       private var soundChannel:SoundChannel;
  84.       
  85.       public function Main()
  86.       {
  87.          musicClass = Main_musicClass;
  88.          bgClass = Main_bgClass;
  89.          sunImageClass = Main_sunImageClass;
  90.          swampImageClass = Main_swampImageClass;
  91.          cloud1ImageClass = Main_cloud1ImageClass;
  92.          cloud2ImageClass = Main_cloud2ImageClass;
  93.          cloud3ImageClass = Main_cloud3ImageClass;
  94.          soundON = Main_soundON;
  95.          soundOFF = Main_soundOFF;
  96.          maxgames = Main_maxgames;
  97.          maxgamesLogo = Main_maxgamesLogo;
  98.          super();
  99.          MochiServices.connect("bba288c2da590682",this);
  100.          stage.scaleMode = StageScaleMode.NO_SCALE;
  101.          stage.tabChildren = false;
  102.          playAdd(null);
  103.       }
  104.       
  105.       private function onKeyUp(event:KeyboardEvent) : void
  106.       {
  107.          if(event.keyCode == 39)
  108.          {
  109.             theGame.stopMoveRight();
  110.          }
  111.          if(event.keyCode == 37)
  112.          {
  113.             theGame.stopMoveLeft();
  114.          }
  115.       }
  116.       
  117.       override public function stop() : void
  118.       {
  119.          super.stop();
  120.          stage.removeEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
  121.          stage.removeEventListener(KeyboardEvent.KEY_UP,onKeyUp);
  122.       }
  123.       
  124.       private function setBorders() : void
  125.       {
  126.          var border:Sprite = new Sprite();
  127.          border.graphics.lineStyle(1);
  128.          border.graphics.drawRect(0,0,640,480);
  129.          addChild(border);
  130.          scores = new TextField();
  131.          scores.autoSize = TextFieldAutoSize.LEFT;
  132.          scores.text = "Scores: " + theGame.scores;
  133.          scores.x = 30;
  134.          scores.y = 95;
  135.          addChild(scores);
  136.          scores.setTextFormat(textForm);
  137.          var muteImage:Bitmap = new soundOFF();
  138.          var muteImage2:Bitmap = new soundON();
  139.          muteButton = new SimpleButton(muteImage,muteImage,muteImage,muteImage2);
  140.          muteButton.addEventListener("click",mute);
  141.          muteButton.x = 30;
  142.          muteButton.y = 120;
  143.          addChild(muteButton);
  144.       }
  145.       
  146.       private function onKeyDown(event:KeyboardEvent) : void
  147.       {
  148.          if(paused == false)
  149.          {
  150.             if(event.keyCode == 39)
  151.             {
  152.                theGame.moveRight();
  153.             }
  154.             if(event.keyCode == 37)
  155.             {
  156.                theGame.moveLeft();
  157.             }
  158.          }
  159.          if(event.keyCode == Keyboard.SPACE)
  160.          {
  161.             if(paused == true)
  162.             {
  163.                resume();
  164.             }
  165.             else
  166.             {
  167.                pause();
  168.             }
  169.          }
  170.       }
  171.       
  172.       private function makeHSButton() : SimpleButton
  173.       {
  174.          var text:TextField = new TextField();
  175.          text.text = "Highscores";
  176.          text.textColor = 14483970;
  177.          text.autoSize = TextFieldAutoSize.CENTER;
  178.          textForm.underline = true;
  179.          text.setTextFormat(textForm);
  180.          textForm.underline = false;
  181.          return new SimpleButton(text,text,text,text);
  182.       }
  183.       
  184.       public function playMain(event:Event) : void
  185.       {
  186.          if(event != null)
  187.          {
  188.             event.target.removeEventListener("timer",playAdd);
  189.             event.target.stop();
  190.             maxgameClip.gotoAndStop(0);
  191.             removeChild(maxgameClip);
  192.             kongregate = new KongregateAPI();
  193.             addChild(kongregate);
  194.             stage.frameRate = 70;
  195.          }
  196.          super.play();
  197.          stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
  198.          stage.addEventListener(KeyboardEvent.KEY_UP,onKeyUp);
  199.          if(paused == true)
  200.          {
  201.             resume();
  202.             pause();
  203.             return;
  204.          }
  205.          music = new musicClass();
  206.          soundChannel = music.play(0,999);
  207.          textForm = new TextFormat();
  208.          textForm.size = 14;
  209.          textForm.bold = true;
  210.          textForm.font = "comic sans ms";
  211.          theGame = new Game();
  212.          graphs = new GameGraphics(this,theGame);
  213.          startGame(null);
  214.          addSun(470,-50);
  215.          addSwamps();
  216.          addCloud(10,10,0.2,0,cloud1ImageClass);
  217.          addCloud(200,40,-0.5,0,cloud2ImageClass);
  218.          addCloud(400,30,-0.3,0,cloud3ImageClass);
  219.          setBorders();
  220.          var text:TextField = new TextField();
  221.          text.text = "Play Games to the Max\nat MaxGames.com";
  222.          text.textColor = 1052927;
  223.          text.setTextFormat(textForm);
  224.          text.autoSize = TextFieldAutoSize.CENTER;
  225.          maxgameButton.hitTestState = text;
  226.          maxgameButton.downState = text;
  227.          maxgameButton.upState = text;
  228.          maxgameButton.overState = text;
  229.          maxgameButton.x = 250;
  230.          maxgameButton.y = 200;
  231.       }
  232.       
  233.       private function addSwamps() : void
  234.       {
  235.          graphs.addImage(new GameObject(0,388,640,92),swampImageClass);
  236.       }
  237.       
  238.       private function mute(event:Event) : void
  239.       {
  240.          var muteImage:Bitmap = new soundOFF();
  241.          var muteImage2:Bitmap = new soundON();
  242.          if(muted == false)
  243.          {
  244.             muted = true;
  245.             muteButton.upState = muteImage2;
  246.             muteButton.overState = muteImage2;
  247.             muteButton.downState = muteImage2;
  248.             soundChannel.stop();
  249.          }
  250.          else
  251.          {
  252.             muted = false;
  253.             muteButton.upState = muteImage;
  254.             muteButton.overState = muteImage;
  255.             muteButton.downState = muteImage;
  256.             soundChannel = music.play(0,999);
  257.          }
  258.       }
  259.       
  260.       private function addCloud(x:Number, y:Number, vx:Number, vy:Number, imageClass:Class) : void
  261.       {
  262.          var obj:GameObject = new GameObject(x,y,100,50,vx,vy);
  263.          Game.timer.addEventListener("timer",obj.move);
  264.          graphs.addObject(new ObjectCreatedEvent(obj,imageClass));
  265.       }
  266.       
  267.       private function openMaxGames(event:Event) : void
  268.       {
  269.          var url:String = "http://www.maxgames.com";
  270.          var request:URLRequest = new URLRequest(url);
  271.          try
  272.          {
  273.             navigateToURL(request,"_blank");
  274.          }
  275.          catch(e:Error)
  276.          {
  277.             trace("Error occurred!");
  278.          }
  279.       }
  280.       
  281.       private function setScores(event:Event) : void
  282.       {
  283.          var format:TextFormat = null;
  284.          if(theGame.scores > 0)
  285.          {
  286.             format = new TextFormat();
  287.             format.font = "comic sans ms";
  288.             format.size = 13;
  289.             format.color = 43520;
  290.             format.bold = true;
  291.             new GameText("+" + String(theGame.lastScores),theGame.jumper.x,theGame.jumper.y - 50,format,1000);
  292.          }
  293.          scores.text = "Scores: " + theGame.scores;
  294.          scores.setTextFormat(textForm);
  295.       }
  296.       
  297.       private function resume(event:Event = null) : void
  298.       {
  299.          removeChild(menu);
  300.          theGame.resume();
  301.          paused = false;
  302.          stage.focus = stage;
  303.       }
  304.       
  305.       private function overObstacle(event:Event) : void
  306.       {
  307.          var format:TextFormat = new TextFormat();
  308.          format.font = "comic sans ms";
  309.          format.size = 13;
  310.          format.color = 43520;
  311.          format.bold = true;
  312.          new GameText("Over!\nBonus +1",theGame.jumper.x,theGame.jumper.y - 50,format,1000);
  313.          kongregate.stats.submit("Bonus",theGame.overWithoutHit);
  314.          kongregate.stats.submit("OverJump",1);
  315.       }
  316.       
  317.       override public function play() : void
  318.       {
  319.          if(paused == true)
  320.          {
  321.             playMain(null);
  322.             return;
  323.          }
  324.          stage.frameRate = 24;
  325.          maxgameClip = new maxgames();
  326.          addChild(maxgameClip);
  327.          maxgameClip.soundTransform.volume = 0;
  328.          maxgameClip.play();
  329.          var timer:Timer = new Timer(10000);
  330.          timer.addEventListener("timer",playMain);
  331.          timer.start();
  332.       }
  333.       
  334.       private function showHighScores(event:Event) : void
  335.       {
  336.          paused = true;
  337.          MochiScores.showLeaderboard({"boardID":"d3871afe93a41f3b"});
  338.       }
  339.       
  340.       public function playAdd(event:Event) : void
  341.       {
  342.          var img:Bitmap = new maxgamesLogo();
  343.          maxgameButton = new SimpleButton(img,img,img,img);
  344.          maxgameButton.addEventListener("click",openMaxGames);
  345.          addChild(maxgameButton);
  346.          MochiAd.showPreGameAd({
  347.             "clip":root,
  348.             "id":"d812496d70c65425",
  349.             "res":"640x480",
  350.             "background":0,
  351.             "color":16711680,
  352.             "outline":10855845,
  353.             "no_bg":true
  354.          });
  355.       }
  356.       
  357.       private function openHighScores(event:Event) : void
  358.       {
  359.          paused = true;
  360.          MochiScores.showLeaderboard({
  361.             "boardID":"d3871afe93a41f3b",
  362.             "score":theGame.lastGameScores
  363.          });
  364.       }
  365.       
  366.       private function powerup(event:Event) : void
  367.       {
  368.          var format:TextFormat = new TextFormat();
  369.          format.font = "comic sans ms";
  370.          format.size = 13;
  371.          format.color = 43520;
  372.          format.bold = true;
  373.          if(Game.powerup == 1)
  374.          {
  375.             new GameText("Double Jump!",theGame.jumper.x,theGame.jumper.y - 50,format,1000);
  376.          }
  377.          if(Game.powerup == 2)
  378.          {
  379.             new GameText("Slow Boards!",theGame.jumper.x,theGame.jumper.y - 50,format,1000);
  380.          }
  381.          if(Game.powerup == 3)
  382.          {
  383.             new GameText("Double Boards!",theGame.jumper.x,theGame.jumper.y - 50,format,1000);
  384.          }
  385.       }
  386.       
  387.       private function gameOver(event:Event) : void
  388.       {
  389.          menu = new Sprite();
  390.          var text:TextField = new TextField();
  391.          text.textColor = 0;
  392.          text.text = "Game Over!\n\nScores: " + theGame.lastGameScores + "\n\nPress space to restart.";
  393.          kongregate.stats.submit("Scores",theGame.lastGameScores);
  394.          text.y = 40;
  395.          text.width = 345;
  396.          text.autoSize = TextFieldAutoSize.CENTER;
  397.          menu.x = 100;
  398.          menu.y = 100;
  399.          menu.addChild(text);
  400.          text.setTextFormat(textForm);
  401.          menu.graphics.beginFill(14540253,0.9);
  402.          menu.graphics.drawRoundRect(0,0,440,200,50,50);
  403.          menu.graphics.endFill();
  404.          menu.addChild(maxgameButton);
  405.          if(hsButton == null)
  406.          {
  407.             hsButton = makeHSButton();
  408.          }
  409.          hsButton.x = 135;
  410.          hsButton.y = 97;
  411.          hsButton.removeEventListener("click",showHighScores);
  412.          hsButton.addEventListener("click",openHighScores);
  413.          addChild(menu);
  414.          paused = true;
  415.       }
  416.       
  417.       private function hitObstacle(event:Event) : void
  418.       {
  419.          var format:TextFormat = new TextFormat();
  420.          format.font = "comic sans ms";
  421.          format.size = 13;
  422.          format.color = 12255232;
  423.          format.bold = true;
  424.          new GameText("Hit :(\nBonus -1",theGame.jumper.x,theGame.jumper.y - 50,format,1000);
  425.       }
  426.       
  427.       private function addSun(x:int, y:int) : void
  428.       {
  429.          graphs.addImage(new GameObject(x,y,200,200),sunImageClass,150,true);
  430.       }
  431.       
  432.       private function pause(event:Event = null) : void
  433.       {
  434.          if(event == null)
  435.          {
  436.             theGame.pause();
  437.          }
  438.          menu = new Sprite();
  439.          var text:TextField = new TextField();
  440.          text.textColor = 0;
  441.          text.y = 20;
  442.          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.";
  443.          text.width = 440;
  444.          text.autoSize = TextFieldAutoSize.CENTER;
  445.          menu.x = 100;
  446.          menu.y = 100;
  447.          menu.addChild(text);
  448.          text.setTextFormat(textForm);
  449.          menu.graphics.beginFill(14540253,0.9);
  450.          menu.graphics.drawRoundRect(0,0,440,200,50,50);
  451.          menu.graphics.endFill();
  452.          menu.addChild(maxgameButton);
  453.          if(hsButton == null)
  454.          {
  455.             hsButton = makeHSButton();
  456.          }
  457.          hsButton.x = 275;
  458.          hsButton.y = 10;
  459.          hsButton.removeEventListener("click",openHighScores);
  460.          hsButton.addEventListener("click",showHighScores);
  461.          addChild(menu);
  462.          paused = true;
  463.       }
  464.       
  465.       private function onMouseMove(event:MouseEvent) : void
  466.       {
  467.       }
  468.       
  469.       public function startGame(event:Event) : void
  470.       {
  471.          theGame.addEventListener("pause",pause);
  472.          theGame.addEventListener("gameover",gameOver);
  473.          theGame.addEventListener("continue",resume);
  474.          theGame.addEventListener("scoresChanged",setScores);
  475.          theGame.addEventListener("obstacleTouched",hitObstacle);
  476.          theGame.addEventListener("wentOver",overObstacle);
  477.          theGame.addEventListener("powerupped",powerup);
  478.          theGame.start();
  479.          pause();
  480.       }
  481.    }
  482. }
  483.