Initial Commit
* Adds Menu * Adds Level Manager - LevelBase * Adds Sample level * Basic player movement
This commit is contained in:
56
source/core/LevelBase.hx
Normal file
56
source/core/LevelBase.hx
Normal file
@@ -0,0 +1,56 @@
|
||||
package core;
|
||||
|
||||
import core.Types.LevelConfig;
|
||||
import entities.Player;
|
||||
import flixel.FlxG;
|
||||
import flixel.FlxState;
|
||||
import flixel.addons.editors.ogmo.FlxOgmo3Loader;
|
||||
import flixel.tile.FlxTilemap;
|
||||
import scenes.GameOver;
|
||||
|
||||
class LevelBase extends FlxState
|
||||
{
|
||||
var map:FlxOgmo3Loader;
|
||||
var bg:FlxTilemap;
|
||||
var walls:FlxTilemap;
|
||||
var _player:Player;
|
||||
|
||||
public function new(levelConfig:LevelConfig)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
override public function create()
|
||||
{
|
||||
super.create();
|
||||
add(bg);
|
||||
add(walls);
|
||||
map.loadEntities(loadPlayer, 'player_layer');
|
||||
FlxG.camera.setScrollBoundsRect(0, 0, walls.width, walls.height, true);
|
||||
}
|
||||
|
||||
override public function update(elapsed:Float)
|
||||
{
|
||||
super.update(elapsed);
|
||||
FlxG.collide(_player, walls);
|
||||
|
||||
if (_player.y > walls.height)
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
9
source/core/Types.hx
Normal file
9
source/core/Types.hx
Normal file
@@ -0,0 +1,9 @@
|
||||
package core;
|
||||
|
||||
typedef LevelConfig =
|
||||
{
|
||||
var ogmoLevel:String;
|
||||
var levelJson:String;
|
||||
var wallTilesheet:String;
|
||||
var bgTileSheet:String;
|
||||
}
|
||||
Reference in New Issue
Block a user