Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package;
- import flixel.group.FlxGroup;
- import flixel.math.FlxPoint;
- import flixel.math.FlxRect;
- import registry.REG;
- import flixel.FlxG;
- import flixel.FlxSprite;
- import flixel.FlxState;
- import flixel.text.FlxText;
- import flixel.util.FlxColor;
- import flixel.math.FlxMath;
- import flixel.tile.FlxTilemap;
- import flixel.addons.editors.ogmo.FlxOgmoLoader;
- import flixel.FlxObject;
- import flixel.addons.display.FlxBackdrop;
- import flixel.math.FlxMath;
- class GameState extends FlxState
- {
- public var tileMap:FlxOgmoLoader;
- public var floor:FlxTilemap;
- public var goopy:FlxTypedGroup<FlxObject>;
- public var baseBG:FlxBackdrop;
- public var layer1:FlxTypedGroup<FlxSprite>;
- public var layer2:FlxTypedGroup<FlxSprite>;
- public var layer3:FlxTypedGroup<FlxSprite>;
- override public function create():Void
- {
- super.create();
- //Tilemap
- tileMap = new FlxOgmoLoader('assets/maps/' + REG.levelType + '_' + Std.string(REG.levelID) + '.oel');
- floor = tileMap.loadTilemap('assets/maps/tiles/' + REG.levelType + '.png', 96, 96, "tiles");
- floor = setTileProperties(floor, [FlxObject.NONE]);
- goopy = new FlxTypedGroup<FlxObject>();
- //Backgrounds
- baseBG = new FlxBackdrop('assets/sprites/backgrounds/base.png');
- layer1 = new FlxTypedGroup<FlxSprite>();
- layer2 = new FlxTypedGroup<FlxSprite>();
- layer3 = new FlxTypedGroup<FlxSprite>();
- getTBG(1, layer1);
- getTBG(2, layer2);
- getTBG(3, layer3);
- addObjects();
- }
- //Get Tiled Backdrops
- function getTBG(LayerID:Int, Layer:FlxTypedGroup<FlxSprite>)
- {
- var tS:FlxPoint = new FlxPoint(200, 182); //Tile Size
- var T:FlxPoint = new FlxPoint(FlxG.width / tS.x, FlxG.height / tS.y);
- for (i in 0 ... Math.round(T.y + 1))
- {
- for (b in 0 ... Math.round(T.x + 1))
- {
- var d:FlxSprite = new FlxSprite(b * tS.x, i * tS.y, 'assets/sprites/backgrounds/layer' + Std.string(LayerID) + '.png');
- switch(LayerID)
- {
- case 1:
- d.velocity.y = -10;
- d.alpha = 0.2;
- case 2:
- d.alpha = 0.2;
- case 3:
- d.velocity.y = -20;
- d.alpha = 0.3;
- }
- if (LayerID == 2)
- {
- d.loadGraphic('assets/sprites/backgrounds/layer2.png', true, 200, 182);
- d.animation.add('water', [0, 1, 2, 3, 4, 5, 6, 7, 8], 8, true);
- d.animation.play('water', true);
- }
- Layer.add(d);
- }
- }
- }
- //Get entities
- function loadEntities(name:String, data:Xml):Void
- {
- var x:Int = Std.parseInt(data.get("x"));
- var y:Int = Std.parseInt(data.get("y"));
- switch (name)
- {
- case "bound":
- goopy.add(new FlxObject(x, y, Std.parseInt(data.get("width")), Std.parseInt(data.get("height"))));
- }
- }
- //Add Objects
- function addObjects()
- {
- //Load Entities
- tileMap.loadEntities(loadEntities, 'entities');
- //BG
- add(baseBG);
- add(layer1);
- add(layer2);
- add(layer3);
- //Tilemap
- add(floor);
- add(goopy);
- }
- function setTileProperties(Layer:FlxTilemap, T:Array<Int>)
- {
- var tmap:FlxTilemap = Layer;
- for (i in 1 ... T.length)
- {
- tmap.setTileProperties(i, T[i-1]);
- }
- return tmap;
- }
- override public function update(elapsed:Float):Void
- {
- super.update(elapsed);
- layer1.forEach(bgTile);
- layer2.forEach(bgTile);
- layer3.forEach(bgTile);
- }
- function bgTile(S:FlxSprite)
- {
- if (S.y <= -182)
- S.y = FlxG.height+12;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement