Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package
- {
- import mx.core.FlexSprite;
- import org.flixel.*;
- import com.greensock.*;
- import com.greensock.easing.*;
- public class PlayState extends FlxState
- {
- //[Embed(source="../assets/background1.png")] private var ImgBackdrop:Class;
- [Embed(source = "../assets/block.png")] private var ImgCrate:Class;
- [Embed(source = "../assets/flower.png")] private var MapTiles:Class;
- [Embed(source = "../map/mapCSV_Level1_Slopes.csv", mimeType = "application/octet-stream")] private var MapData:Class;
- public var player:Player;
- private var level:Level1;
- private var level2:Level2;
- private var score:FlxText;
- private var starFX:FlxSound;
- public static var currentLevel:Number = 0;
- public var crateSprite:FlxSprite;
- private var _map:FlxTilemapExt;
- private var _player:Player;
- public function PlayState()
- {
- }
- override public function create():void
- {
- currentLevel++;
- level = new Level1;
- level2 = new Level2;
- if (currentLevel == 1)
- {
- starFX = new FlxSound();
- starFX.loadEmbedded(starSFX);
- player = new Player(4, 120);
- score = new FlxText(0, 0, 1000);
- score.color = 0xffffffff;
- score.size = 40;
- score.shadow = 0xff000000;
- Registry.map = level.map;
- score.scrollFactor.x = 0;
- score.scrollFactor.y = 0;
- score.text = "0 / " + level.totalStars.toString();
- add(level);
- add(player);
- add(level.stars);
- add(level.cats);
- add(score);
- FlxG.worldBounds = new FlxRect(0, 0, level.width, level.height);
- FlxG.camera.setBounds(0, 0, level.width, level.height);
- //Then create a Crate
- crateSprite = new FlxSprite(200, 100, ImgCrate);
- crateSprite.width = 48;
- crateSprite.height = 48;
- crateSprite.scale.x = .64;
- crateSprite.scale.y = .64;
- crateSprite.offset.x = 13;
- crateSprite.offset.y = 12;
- crateSprite.elasticity = 0.2;
- crateSprite.height = crateSprite.height - 1;
- crateSprite.acceleration.y = 100;
- crateSprite.drag.x = 200;
- add(crateSprite);
- _map = new FlxTilemapExt;
- _map.loadMap(new MapData, MapTiles)
- add(_map);
- }
- if (currentLevel == 2)
- {
- remove(level);
- remove(player);
- remove(level.stars);
- remove(level.cats);
- remove(score);
- starFX = new FlxSound();
- starFX.loadEmbedded(starSFX);
- player = new Player(4, 120);
- score = new FlxText(0, 0, 1000);
- score.color = 0xffffffff;
- score.size = 40;
- score.shadow = 0xff000000;
- Registry.map = level2.map2;
- score.scrollFactor.x = 0;
- score.scrollFactor.y = 0;
- score.text = "0 / " + level.totalStars.toString();
- add(level2);
- add(player);
- add(level2.stars);
- add(level2.cats);
- add(score);
- FlxG.worldBounds = new FlxRect(0, 0, level2.width, level2.height);
- FlxG.camera.setBounds(0, 0, level2.width, level2.height);
- }
- // The camera will follow the player
- FlxG.camera.follow(player, FlxCamera.STYLE_PLATFORMER);
- //FlxG.playMusic(level1MusicMP3, 0.5);
- }
- override public function update():void
- {
- super.update();
- if (FlxG.keys.A) {
- changeState();
- }
- if (currentLevel == 1)
- {
- FlxG.collide(player, level);
- FlxG.collide(player, crateSprite);
- FlxG.collide(level.cats, level);
- FlxG.collide(crateSprite, level);
- FlxG.overlap(player, level.cats, hitCat);
- FlxG.overlap(player, level.stars, hitStar);
- if (FlxG.overlap(player, crateSprite))
- {
- if (FlxG.keys.D)
- {
- //TweenLite.to(crateSprite, 1, {x:player.x, y:player.y - 42, ease:Bounce.easeInOut});
- crateSprite.x = player.x;
- crateSprite.y = player.y - 42;
- player.maxVelocity.x = 50;
- }
- if (FlxG.keys.justReleased("D"))
- {
- player.maxVelocity.x = 250;
- if (player.facing == FlxObject.RIGHT)
- {
- crateSprite.velocity.x = player.velocity.x + 100;
- }else {
- crateSprite.velocity.x = player.velocity.x - 100;
- crateSprite.velocity.y = 0;
- }
- }
- }
- // Player walked through end of level exit?
- if (player.x > Registry.levelExit.x && player.y + 24 == Registry.levelExit.y)
- {
- player.exists = false;
- FlxG.fade(0xff000000, 2, changeState);
- //FlxG.music.fadeOut(2);
- }
- }
- if (currentLevel == 2)
- {
- FlxG.collide(player, level2);
- FlxG.collide(level2.cats, level2);
- FlxG.overlap(player, level2.cats, hitCat);
- FlxG.overlap(player, level2.stars, hitStar);
- // Player walked through end of level exit?
- if (player.x > Registry.levelExit.x && player.y + 24 == Registry.levelExit.y)
- {
- player.exists = false;
- FlxG.fade(0xff000000, 2, changeState);
- //FlxG.music.fadeOut(2);
- }
- }
- }
- private function changeState():void
- {
- FlxG.switchState(new PlayState);
- }
- private function hitCat(player:FlxObject, cat:FlxObject):void
- {
- if (Cat(cat).isDying)
- {
- return;
- }
- if ((player.y +30) < cat.y)
- {
- cat.kill();
- }
- else
- {
- //Player(player).restart();
- //TweenLite.from(player, 2, { x:player.x, y:player.y, ease:Bounce.easeInOut } );
- //
- //TweenLite.to(player, 2, { x:player.x, y:player.y - 100, ease:Back.easeOut } );
- //
- //
- TweenLite.to(player, 1.5, {x:player.x, y:player.y+400, ease:Back.easeIn});
- //TweenLite.to(player, 2, {x:player.x, y:player.y+600, ease:Back.easeOut});
- }
- }
- private function hitStar(p:FlxObject, star:FlxObject):void
- {
- star.kill();
- FlxG.score += 1;
- starFX.play(true);
- if (FlxG.score == level.totalStars)
- {
- // Opens the exit at the end of the level
- score.text = FlxG.score.toString() + " / " + level.totalStars.toString() + "Buena Wn!";
- level.openExit();
- }
- else
- {
- score.text = FlxG.score.toString() + " / " + level.totalStars.toString();
- }
- }
- public function levelRestart():void
- {
- FlxG.log("CALLING OUTSIDE FUNCTION");
- crateSprite.reset(0, 0);
- remove(level.cats);
- add(level.cats);
- }
- }
- }
Add Comment
Please, Sign In to add comment