Guest User

Untitled

a guest
Apr 17th, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package  
  2. {
  3.     import mx.core.FlexSprite;
  4.     import org.flixel.*;
  5.     import com.greensock.*;
  6.     import com.greensock.easing.*;
  7.    
  8.    
  9.     public class PlayState extends FlxState
  10.     {
  11.    
  12.         //[Embed(source="../assets/background1.png")] private var ImgBackdrop:Class;
  13.         [Embed(source = "../assets/block.png")] private var ImgCrate:Class;
  14.         [Embed(source = "../assets/flower.png")] private var MapTiles:Class;
  15.         [Embed(source = "../map/mapCSV_Level1_Slopes.csv", mimeType = "application/octet-stream")] private var MapData:Class;
  16.        
  17.        
  18.         public var player:Player;
  19.         private var level:Level1;
  20.         private var level2:Level2;
  21.         private var score:FlxText;
  22.         private var starFX:FlxSound;
  23.         public static var currentLevel:Number = 0;
  24.         public var crateSprite:FlxSprite;
  25.        
  26.         private var _map:FlxTilemapExt;
  27.         private var _player:Player;
  28.        
  29.        
  30.         public function PlayState()
  31.         {
  32.            
  33.         }
  34.        
  35.         override public function create():void
  36.         {
  37.            
  38.             currentLevel++;
  39.            
  40.             level = new Level1;
  41.             level2 = new Level2;
  42.            
  43.            
  44.            
  45.             if (currentLevel == 1)
  46.             {
  47.                 starFX = new FlxSound();
  48.                 starFX.loadEmbedded(starSFX);
  49.            
  50.                 player = new Player(4, 120);
  51.                
  52.                 score = new FlxText(0, 0, 1000);
  53.                 score.color = 0xffffffff;
  54.                 score.size = 40;
  55.                 score.shadow = 0xff000000;
  56.  
  57.                 Registry.map = level.map;
  58.  
  59.                 score.scrollFactor.x = 0;
  60.                 score.scrollFactor.y = 0;
  61.                 score.text = "0 / " + level.totalStars.toString();
  62.                
  63.                 add(level);
  64.                 add(player);
  65.                 add(level.stars);
  66.                 add(level.cats);
  67.                 add(score);
  68.  
  69.                 FlxG.worldBounds = new FlxRect(0, 0, level.width, level.height);
  70.                 FlxG.camera.setBounds(0, 0, level.width, level.height);
  71.                
  72.                 //Then create a Crate
  73.                
  74.                 crateSprite = new FlxSprite(200, 100, ImgCrate);
  75.                
  76.                 crateSprite.width = 48;
  77.                 crateSprite.height = 48;
  78.                 crateSprite.scale.x = .64;
  79.                 crateSprite.scale.y = .64;
  80.                 crateSprite.offset.x = 13;
  81.                 crateSprite.offset.y = 12;
  82.                 crateSprite.elasticity = 0.2;
  83.                 crateSprite.height = crateSprite.height - 1;
  84.                 crateSprite.acceleration.y = 100;
  85.            
  86.                 crateSprite.drag.x = 200;
  87.                 add(crateSprite);
  88.                
  89.                
  90.                 _map = new FlxTilemapExt;
  91.                 _map.loadMap(new MapData, MapTiles)
  92.                 add(_map);
  93.                
  94.                
  95.                
  96.             }
  97.            
  98.             if (currentLevel == 2)
  99.             {
  100.                
  101.                 remove(level);
  102.                 remove(player);
  103.                 remove(level.stars);
  104.                 remove(level.cats);
  105.                 remove(score);
  106.            
  107.                 starFX = new FlxSound();
  108.                 starFX.loadEmbedded(starSFX);
  109.            
  110.                 player = new Player(4, 120);
  111.  
  112.                 score = new FlxText(0, 0, 1000);
  113.                 score.color = 0xffffffff;
  114.                 score.size = 40;
  115.                 score.shadow = 0xff000000;
  116.                
  117.                 Registry.map = level2.map2;
  118.  
  119.                 score.scrollFactor.x = 0;
  120.                 score.scrollFactor.y = 0;
  121.                 score.text = "0 / " + level.totalStars.toString();
  122.                
  123.                 add(level2);
  124.                
  125.                 add(player);
  126.                 add(level2.stars);
  127.                 add(level2.cats);
  128.                 add(score);
  129.                
  130.                
  131.            
  132.  
  133.                 FlxG.worldBounds = new FlxRect(0, 0, level2.width, level2.height);
  134.                 FlxG.camera.setBounds(0, 0, level2.width, level2.height);
  135.             }
  136.            
  137.             //  The camera will follow the player
  138.             FlxG.camera.follow(player, FlxCamera.STYLE_PLATFORMER);
  139.            
  140.             //FlxG.playMusic(level1MusicMP3, 0.5);
  141.         }
  142.        
  143.         override public function update():void
  144.         {
  145.             super.update();
  146.             if (FlxG.keys.A) {
  147.                 changeState();
  148.             }
  149.             if (currentLevel == 1)
  150.             {
  151.                
  152.                 FlxG.collide(player, level);
  153.                 FlxG.collide(player, crateSprite);
  154.                 FlxG.collide(level.cats, level);
  155.                 FlxG.collide(crateSprite, level);
  156.                 FlxG.overlap(player, level.cats, hitCat);
  157.                 FlxG.overlap(player, level.stars, hitStar);
  158.            
  159.                 if (FlxG.overlap(player, crateSprite))
  160.                 {
  161.                    
  162.                    
  163.                     if (FlxG.keys.D)
  164.                     {  
  165.                         //TweenLite.to(crateSprite, 1, {x:player.x, y:player.y - 42, ease:Bounce.easeInOut});
  166.                         crateSprite.x = player.x;
  167.                         crateSprite.y =  player.y - 42;
  168.                         player.maxVelocity.x = 50;
  169.                     }
  170.                     if (FlxG.keys.justReleased("D"))
  171.                     {
  172.                         player.maxVelocity.x = 250;
  173.                         if (player.facing == FlxObject.RIGHT)
  174.                         {
  175.                             crateSprite.velocity.x = player.velocity.x + 100;
  176.                         }else {
  177.                             crateSprite.velocity.x = player.velocity.x - 100;
  178.                             crateSprite.velocity.y = 0;
  179.                         }
  180.                        
  181.                     }
  182.                        
  183.                 }
  184.                
  185.                 //  Player walked through end of level exit?
  186.                 if (player.x > Registry.levelExit.x && player.y + 24 == Registry.levelExit.y)
  187.                 {
  188.                     player.exists = false;
  189.                     FlxG.fade(0xff000000, 2, changeState);
  190.                     //FlxG.music.fadeOut(2);
  191.                
  192.                 }
  193.            
  194.                
  195.             }
  196.                 if (currentLevel == 2)
  197.             {
  198.            
  199.                 FlxG.collide(player, level2);
  200.                 FlxG.collide(level2.cats, level2);
  201.            
  202.            
  203.                 FlxG.overlap(player, level2.cats, hitCat);
  204.                 FlxG.overlap(player, level2.stars, hitStar);
  205.            
  206.                 //  Player walked through end of level exit?
  207.                 if (player.x > Registry.levelExit.x && player.y + 24 == Registry.levelExit.y)
  208.                 {
  209.                     player.exists = false;
  210.                     FlxG.fade(0xff000000, 2, changeState);
  211.                     //FlxG.music.fadeOut(2);
  212.                
  213.                 }
  214.             }
  215.  
  216.            
  217.         }
  218.        
  219.         private function changeState():void
  220.         {
  221.             FlxG.switchState(new PlayState);
  222.            
  223.         }
  224.        
  225.         private function hitCat(player:FlxObject, cat:FlxObject):void
  226.         {
  227.             if (Cat(cat).isDying)
  228.             {
  229.                 return;
  230.             }
  231.            
  232.             if ((player.y +30) < cat.y)
  233.             {
  234.                 cat.kill();
  235.             }
  236.             else
  237.             {  
  238.                
  239.                 //Player(player).restart();
  240.                 //TweenLite.from(player, 2, { x:player.x, y:player.y, ease:Bounce.easeInOut } );
  241.                 //
  242.                 //TweenLite.to(player, 2, { x:player.x, y:player.y - 100, ease:Back.easeOut } );
  243.                 //
  244.                 //
  245.                 TweenLite.to(player, 1.5, {x:player.x, y:player.y+400, ease:Back.easeIn});
  246.                 //TweenLite.to(player, 2, {x:player.x, y:player.y+600, ease:Back.easeOut});
  247.                
  248.             }
  249.         }
  250.        
  251.        
  252.        
  253.         private function hitStar(p:FlxObject, star:FlxObject):void
  254.         {
  255.             star.kill();
  256.            
  257.             FlxG.score += 1;
  258.            
  259.             starFX.play(true);
  260.            
  261.             if (FlxG.score == level.totalStars)
  262.             {
  263.                 //  Opens the exit at the end of the level
  264.                 score.text = FlxG.score.toString() + " / " + level.totalStars.toString() + "Buena Wn!";
  265.                 level.openExit();
  266.        
  267.             }
  268.             else
  269.             {
  270.                 score.text = FlxG.score.toString() + " / " + level.totalStars.toString();
  271.             }
  272.         }
  273.        
  274.         public function levelRestart():void
  275.         {
  276.             FlxG.log("CALLING OUTSIDE FUNCTION");
  277.             crateSprite.reset(0, 0);
  278.            
  279.             remove(level.cats);
  280.             add(level.cats);
  281.         }
  282.        
  283.     }
  284.  
  285. }
Add Comment
Please, Sign In to add comment