Map Editor Changes
* Removed Ogmo and replaced with Ldtk. * TODO - Level Transitions
This commit is contained in:
3
source/core/GameMap.hx
Normal file
3
source/core/GameMap.hx
Normal file
@@ -0,0 +1,3 @@
|
||||
package core;
|
||||
|
||||
private typedef _Tmp = haxe.macro.MacroType<[ldtk.Project.build("assets/data/map.ldtk")]>;
|
||||
@@ -1,56 +1,88 @@
|
||||
package core;
|
||||
|
||||
import core.Types.LevelConfig;
|
||||
import core.GameMap;
|
||||
import entities.Player;
|
||||
import flixel.FlxG;
|
||||
import flixel.FlxState;
|
||||
import flixel.addons.editors.ogmo.FlxOgmo3Loader;
|
||||
import flixel.tile.FlxTilemap;
|
||||
import flixel.addons.display.FlxTiledSprite;
|
||||
import flixel.addons.transition.FlxTransitionSprite.GraphicTransTileDiamond;
|
||||
import flixel.addons.transition.FlxTransitionableState;
|
||||
import flixel.addons.transition.TransitionData;
|
||||
import flixel.graphics.FlxGraphic;
|
||||
import flixel.group.FlxSpriteGroup;
|
||||
import flixel.util.FlxColor;
|
||||
import scenes.GameOver;
|
||||
|
||||
class LevelBase extends FlxState
|
||||
{
|
||||
var map:FlxOgmo3Loader;
|
||||
var bg:FlxTilemap;
|
||||
var walls:FlxTilemap;
|
||||
var walls:Dynamic;
|
||||
var _player:Player;
|
||||
var levelContainer:FlxSpriteGroup;
|
||||
var bg:FlxTiledSprite;
|
||||
|
||||
public function new(levelConfig:LevelConfig)
|
||||
var currentLevel:GameMap_Level;
|
||||
|
||||
public function new(level:GameMap_Level)
|
||||
{
|
||||
super();
|
||||
map = new FlxOgmo3Loader(levelConfig.ogmoLevel, levelConfig.levelJson);
|
||||
bg = map.loadTilemap(levelConfig.bgTileSheet, "bg");
|
||||
walls = map.loadTilemap(levelConfig.wallTilesheet, "walls");
|
||||
bg.scrollFactor.set(.33, .33);
|
||||
currentLevel = level;
|
||||
}
|
||||
|
||||
function createTransition()
|
||||
{
|
||||
FlxTransitionableState.defaultTransIn = new TransitionData(TILES, FlxColor.WHITE, 1.1);
|
||||
FlxTransitionableState.defaultTransOut = new TransitionData(TILES, FlxColor.WHITE, 1.1);
|
||||
var diamond:FlxGraphic = FlxGraphic.fromClass(cast GraphicTransTileDiamond);
|
||||
diamond.persist = true;
|
||||
diamond.destroyOnNoUse = false;
|
||||
|
||||
FlxTransitionableState.defaultTransIn.tileData = {asset: diamond, width: 32, height: 32};
|
||||
FlxTransitionableState.defaultTransOut.tileData = {asset: diamond, width: 32, height: 32};
|
||||
}
|
||||
|
||||
override public function create()
|
||||
{
|
||||
super.create();
|
||||
createTransition();
|
||||
setupLevel();
|
||||
}
|
||||
|
||||
function setupLevel()
|
||||
{
|
||||
levelContainer = new FlxSpriteGroup();
|
||||
levelContainer.x = currentLevel.worldX;
|
||||
levelContainer.y = currentLevel.worldY;
|
||||
walls = currentLevel.l_Walls;
|
||||
|
||||
currentLevel.l_Walls.render(levelContainer);
|
||||
levelContainer.immovable = true;
|
||||
bg = new FlxTiledSprite(AssetPaths.Gray__png, currentLevel.pxWid, currentLevel.pxHei, true, true);
|
||||
|
||||
add(bg);
|
||||
add(walls);
|
||||
map.loadEntities(loadPlayer, 'player_layer');
|
||||
FlxG.camera.setScrollBoundsRect(0, 0, walls.width, walls.height, true);
|
||||
bg.scrollFactor.set(.33, .33);
|
||||
for (player in currentLevel.l_Entities.all_Player)
|
||||
{
|
||||
initPlayer(player);
|
||||
}
|
||||
add(levelContainer);
|
||||
FlxG.camera.setScrollBoundsRect(0, 0, currentLevel.pxWid, currentLevel.pxHei, true);
|
||||
}
|
||||
|
||||
function initPlayer(playerEntity)
|
||||
{
|
||||
_player = new Player(playerEntity.pixelX, playerEntity.pixelY);
|
||||
add(_player);
|
||||
FlxG.camera.follow(_player, PLATFORMER);
|
||||
}
|
||||
|
||||
override public function update(elapsed:Float)
|
||||
{
|
||||
super.update(elapsed);
|
||||
FlxG.collide(_player, walls);
|
||||
FlxG.collide(_player, levelContainer);
|
||||
|
||||
if (_player.y > walls.height)
|
||||
if (_player.y > currentLevel.pxHei)
|
||||
{
|
||||
openSubState(new GameOver());
|
||||
}
|
||||
}
|
||||
|
||||
function loadPlayer(entity:EntityData)
|
||||
{
|
||||
if (entity.name == "player")
|
||||
{
|
||||
_player = new Player(entity.x, entity.y);
|
||||
add(_player);
|
||||
FlxG.camera.follow(_player, NO_DEAD_ZONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
package core;
|
||||
|
||||
typedef LevelConfig =
|
||||
{
|
||||
var ogmoLevel:String;
|
||||
var levelJson:String;
|
||||
var wallTilesheet:String;
|
||||
var bgTileSheet:String;
|
||||
}
|
||||
@@ -13,14 +13,14 @@ class Player extends FlxSprite
|
||||
var _left:FlxActionDigital;
|
||||
var _right:FlxActionDigital;
|
||||
var _jump:FlxActionDigital;
|
||||
var _jumpPower:Int = 200;
|
||||
var _jumpPower:Int = 230;
|
||||
|
||||
public function new(x:Int, y:Int)
|
||||
{
|
||||
super(x, y);
|
||||
|
||||
makeGraphic(16, 16, FlxColor.BLUE);
|
||||
var runSpeed:Int = 80;
|
||||
var runSpeed:Int = 120;
|
||||
drag.x = runSpeed * 8;
|
||||
acceleration.y = 420;
|
||||
maxVelocity.set(runSpeed, _jumpPower);
|
||||
|
||||
@@ -20,7 +20,7 @@ class GameOver extends FlxSubState
|
||||
|
||||
public function new()
|
||||
{
|
||||
super(0x33000000);
|
||||
super(0x303030bf);
|
||||
}
|
||||
|
||||
override public function create()
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
package scenes;
|
||||
|
||||
import core.GameMap;
|
||||
import core.LevelBase;
|
||||
import flixel.FlxState;
|
||||
|
||||
class Level1 extends LevelBase
|
||||
{
|
||||
var map:GameMap;
|
||||
var _currentLevel:GameMap_Level;
|
||||
|
||||
public function new()
|
||||
{
|
||||
super({
|
||||
ogmoLevel: AssetPaths.maps__ogmo,
|
||||
bgTileSheet: AssetPaths.bg__png,
|
||||
wallTilesheet: AssetPaths.sci_fi_tileset__png,
|
||||
levelJson: AssetPaths.level1__json
|
||||
});
|
||||
createTransition();
|
||||
map = new GameMap();
|
||||
_currentLevel = map.all_levels.Level_0;
|
||||
super(_currentLevel);
|
||||
}
|
||||
|
||||
override public function create()
|
||||
|
||||
@@ -5,6 +5,11 @@ import djFlixel.gfx.pal.Pal_DB32;
|
||||
import djFlixel.ui.FlxMenu;
|
||||
import flixel.FlxG;
|
||||
import flixel.FlxState;
|
||||
import flixel.addons.transition.FlxTransitionSprite.GraphicTransTileDiamond;
|
||||
import flixel.addons.transition.FlxTransitionableState;
|
||||
import flixel.addons.transition.TransitionData;
|
||||
import flixel.graphics.FlxGraphic;
|
||||
import flixel.util.FlxColor;
|
||||
import openfl.system.System;
|
||||
|
||||
class MenuState extends FlxState
|
||||
@@ -12,10 +17,35 @@ class MenuState extends FlxState
|
||||
override public function create()
|
||||
{
|
||||
super.create();
|
||||
createTransition();
|
||||
this.generateStarField();
|
||||
this.createMenu();
|
||||
}
|
||||
|
||||
function createTransition()
|
||||
{
|
||||
FlxTransitionableState.defaultTransIn = new TransitionData(TILES, FlxColor.WHITE, 1.1);
|
||||
FlxTransitionableState.defaultTransOut = new TransitionData(TILES, FlxColor.WHITE, 1.1);
|
||||
var diamond:FlxGraphic = FlxGraphic.fromClass(cast GraphicTransTileDiamond);
|
||||
diamond.persist = true;
|
||||
diamond.destroyOnNoUse = false;
|
||||
|
||||
FlxTransitionableState.defaultTransIn.tileData = {asset: diamond, width: 32, height: 32};
|
||||
FlxTransitionableState.defaultTransOut.tileData = {asset: diamond, width: 32, height: 32};
|
||||
|
||||
// FlxTransitionableState.defaultTransIn.color = FlxColor.WHITE;
|
||||
// FlxTransitionableState.defaultTransIn.type = TILES;
|
||||
// FlxTransitionableState.defaultTransIn.duration = 2;
|
||||
// FlxTransitionableState.defaultTransIn.direction = new FlxPoint(1, 0);
|
||||
// FlxTransitionableState.defaultTransIn.tileData.asset = diamond;
|
||||
|
||||
// FlxTransitionableState.defaultTransOut.color = FlxColor.WHITE;
|
||||
// FlxTransitionableState.defaultTransOut.type = TILES;
|
||||
// FlxTransitionableState.defaultTransOut.duration = 2;
|
||||
// FlxTransitionableState.defaultTransOut.direction = new FlxPoint(1, 0);
|
||||
// FlxTransitionableState.defaultTransOut.tileData.asset = diamond;
|
||||
}
|
||||
|
||||
private function generateStarField()
|
||||
{
|
||||
var stars = new StarfieldSimple();
|
||||
|
||||
Reference in New Issue
Block a user