scenes/levels: merge controller and scene object
This commit is contained in:
parent
6c45a92d83
commit
85fbc7d51d
|
@ -1,94 +0,0 @@
|
|||
local Level = Object:extend() -- On créer la classe des entitées, c'est la classe de base
|
||||
|
||||
local World = require "scenes.levels.controller.world"
|
||||
local Camera = require "scenes.levels.controller.camera"
|
||||
local PlayerManager = require "scenes.levels.controller.players"
|
||||
|
||||
local leveldatas = require "datas.levels"
|
||||
|
||||
-- INIT FUNCTIONS
|
||||
-- Initialize and launch the level
|
||||
|
||||
function Level:new()
|
||||
self:reset()
|
||||
end
|
||||
|
||||
function Level:reset()
|
||||
self.datas = {}
|
||||
|
||||
self.pause = false
|
||||
self.map = nil
|
||||
self.backcolor = {0, 0, 0}
|
||||
|
||||
end
|
||||
|
||||
function Level:loadMission(levelID, missionID)
|
||||
local datas, missiondatas
|
||||
self.datas = {}
|
||||
datas = leveldatas[levelID]
|
||||
self.datas.realm = datas.realm
|
||||
self.datas.level = datas.name
|
||||
|
||||
missiondatas = datas.missions[missionID]
|
||||
self.datas.missions = {}
|
||||
self.datas.missions.name = missiondatas.missionName
|
||||
self.datas.missions.desc = missiondatas.description
|
||||
self.datas.missions.map = missiondatas.mapfile
|
||||
self.datas.missions.gravity = missiondatas.gravity
|
||||
self.datas.missions.autorun = missiondatas.autorun
|
||||
self.datas.missions.objectiveID = missiondatas.objectiveID
|
||||
self.datas.missions.startx = missiondatas.startx
|
||||
self.datas.missions.starty = missiondatas.starty
|
||||
self.datas.missions.music = missiondatas.music
|
||||
|
||||
self.world = World(self, self.datas.missions.map)
|
||||
self.world:load()
|
||||
assets:setMusic(self.datas.missions.music)
|
||||
|
||||
self:launchMission()
|
||||
end
|
||||
|
||||
function Level:launchMission()
|
||||
self.playermanager = PlayerManager(self)
|
||||
--self:resetSpawnAndEntities()
|
||||
assets:silence()
|
||||
assets:playMusic()
|
||||
|
||||
self.playermanager:addPlayer(1)
|
||||
self.playermanager:spawnPlayer(1)
|
||||
|
||||
self.camera = Camera(self, self.playermanager.startx, self.playermanager.starty)
|
||||
|
||||
self.score = 0
|
||||
self.gold = 0
|
||||
end
|
||||
|
||||
-- UPDATE FUNCTIONS
|
||||
-- Update the level
|
||||
|
||||
function Level:update(dt)
|
||||
self.keys = core.input.keys
|
||||
if (self.pause == false) then
|
||||
self.playermanager:update(dt)
|
||||
self.world:update(dt)
|
||||
assets:update(dt)
|
||||
self.camera:update(dt)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- DRAW FUNCTIONS
|
||||
-- draw level elements
|
||||
|
||||
function Level:draw(dt)
|
||||
utils.graphics.resetColor()
|
||||
|
||||
self.camera:floorCoord()
|
||||
self.world:draw()
|
||||
|
||||
if (self.pause == false) then
|
||||
self.playermanager:drawHUD()
|
||||
end
|
||||
end
|
||||
|
||||
return Level
|
|
@ -2,33 +2,110 @@
|
|||
require "scenes.levels.sounds"
|
||||
require "scenes.levels.sprites"
|
||||
|
||||
local Level = require "scenes.levels.controller"
|
||||
|
||||
-- On charge le module de scene et créer l'objet de scene des niveaux
|
||||
local Scene = require "core.modules.scenes"
|
||||
local LevelScene = Scene:extend()
|
||||
local Level = Scene:extend()
|
||||
|
||||
function LevelScene:new(levelID, missionID)
|
||||
self.controller = Level()
|
||||
LevelScene.super.new(self)
|
||||
-- Chargement des controllers
|
||||
local World = require "scenes.levels.controller.world"
|
||||
local Camera = require "scenes.levels.controller.camera"
|
||||
local PlayerManager = require "scenes.levels.controller.players"
|
||||
|
||||
local leveldatas = require "datas.levels"
|
||||
|
||||
-- INIT FUNCTIONS
|
||||
-- Initialize and launch the level
|
||||
|
||||
function Level:new(levelID, missionID)
|
||||
self:reset()
|
||||
Level.super.new(self)
|
||||
level_loadSounds()
|
||||
loadSprites()
|
||||
previousMenu = previous
|
||||
self.controller:loadMission(levelID, missionID)
|
||||
self:loadMission(levelID, missionID)
|
||||
|
||||
self:register()
|
||||
end
|
||||
|
||||
function LevelScene:update(dt)
|
||||
self.controller:update(dt)
|
||||
function Level:reset()
|
||||
self.datas = {}
|
||||
|
||||
self.pause = false
|
||||
self.map = nil
|
||||
self.backcolor = {0, 0, 0}
|
||||
|
||||
end
|
||||
|
||||
function LevelScene:draw(dt)
|
||||
self.controller:draw(dt)
|
||||
function Level:loadMission(levelID, missionID)
|
||||
local datas, missiondatas
|
||||
self.datas = {}
|
||||
datas = leveldatas[levelID]
|
||||
self.datas.realm = datas.realm
|
||||
self.datas.level = datas.name
|
||||
|
||||
missiondatas = datas.missions[missionID]
|
||||
self.datas.missions = {}
|
||||
self.datas.missions.name = missiondatas.missionName
|
||||
self.datas.missions.desc = missiondatas.description
|
||||
self.datas.missions.map = missiondatas.mapfile
|
||||
self.datas.missions.gravity = missiondatas.gravity
|
||||
self.datas.missions.autorun = missiondatas.autorun
|
||||
self.datas.missions.objectiveID = missiondatas.objectiveID
|
||||
self.datas.missions.startx = missiondatas.startx
|
||||
self.datas.missions.starty = missiondatas.starty
|
||||
self.datas.missions.music = missiondatas.music
|
||||
|
||||
self.world = World(self, self.datas.missions.map)
|
||||
self.world:load()
|
||||
assets:setMusic(self.datas.missions.music)
|
||||
|
||||
self:launchMission()
|
||||
end
|
||||
|
||||
function LevelScene:exit()
|
||||
function Level:launchMission()
|
||||
self.playermanager = PlayerManager(self)
|
||||
--self:resetSpawnAndEntities()
|
||||
assets:silence()
|
||||
assets:playMusic()
|
||||
|
||||
self.playermanager:addPlayer(1)
|
||||
self.playermanager:spawnPlayer(1)
|
||||
|
||||
self.camera = Camera(self, self.playermanager.startx, self.playermanager.starty)
|
||||
|
||||
self.score = 0
|
||||
self.gold = 0
|
||||
end
|
||||
|
||||
|
||||
-- UPDATE FUNCTIONS
|
||||
-- Update the level
|
||||
|
||||
function Level:update(dt)
|
||||
if (self.pause == false) then
|
||||
self.playermanager:update(dt)
|
||||
self.world:update(dt)
|
||||
assets:update(dt)
|
||||
self.camera:update(dt)
|
||||
end
|
||||
end
|
||||
|
||||
-- DRAW FUNCTIONS
|
||||
-- draw level elements
|
||||
|
||||
function Level:draw(dt)
|
||||
utils.graphics.resetColor()
|
||||
|
||||
self.camera:floorCoord()
|
||||
self.world:draw()
|
||||
|
||||
if (self.pause == false) then
|
||||
self.playermanager:drawHUD()
|
||||
end
|
||||
end
|
||||
|
||||
function Level:exit()
|
||||
self.controller:reset()
|
||||
end
|
||||
|
||||
return LevelScene
|
||||
return Level
|
||||
|
|
Loading…
Reference in New Issue