scenes/levels: split playermanager
This commit is contained in:
parent
7908480ec0
commit
ff02216890
|
@ -13,17 +13,16 @@ end
|
|||
|
||||
function Level:floorCameraCoord()
|
||||
self.camera.x, self.camera.y = utils.math.floorCoord(self.camera.x, self.camera.y)
|
||||
print(self.camera.x .. ";" .. self.camera.y)
|
||||
end
|
||||
|
||||
function Level:updateCamera(dt)
|
||||
self:cameraFollowPlayer(self.activePlayer)
|
||||
self:cameraFollowPlayer(self.playermanager.activePlayer)
|
||||
self:limitCamera()
|
||||
self:floorCameraCoord()
|
||||
end
|
||||
|
||||
function Level:cameraFollowPlayer(id)
|
||||
local player = self:getPlayerByID(id)
|
||||
local player = self.playermanager:getPlayerByID(id)
|
||||
|
||||
if (player ~= nil) then
|
||||
local playx, playy = utils.math.floorCoord(player.center.x,
|
||||
|
|
|
@ -2,8 +2,8 @@ Level = Object:extend() -- On créer la classe des entitées, c'est la classe de
|
|||
|
||||
require "scenes.levels.controller.world"
|
||||
require "scenes.levels.controller.camera"
|
||||
require "scenes.levels.controller.players"
|
||||
require "scenes.levels.controller.debug"
|
||||
PlayerManager = require "scenes.levels.controller.players"
|
||||
|
||||
function Level:new()
|
||||
self:reset()
|
||||
|
@ -54,15 +54,15 @@ function Level:loadMission(levelID, missionID)
|
|||
end
|
||||
|
||||
function Level:launchMission()
|
||||
self:resetPlayers()
|
||||
self.playermanager = PlayerManager(self)
|
||||
--self:resetSpawnAndEntities()
|
||||
assets:silence()
|
||||
assets:playMusic()
|
||||
|
||||
self:initCamera(0, 0)
|
||||
self.playermanager:addPlayer(1)
|
||||
self.playermanager:spawnPlayer(1)
|
||||
|
||||
self:addPlayer(1)
|
||||
self:spawnPlayer(1)
|
||||
self:initCamera(self.playermanager.startx, self.playermanager.starty)
|
||||
|
||||
self.score = 0
|
||||
self.gold = 0
|
||||
|
@ -73,7 +73,7 @@ end
|
|||
function Level:update(dt)
|
||||
self.keys = core.input.keys
|
||||
if (self.pause == false) then
|
||||
self:updatePlayerSystem(dt)
|
||||
self.playermanager:update(dt)
|
||||
self:updateWorld(dt)
|
||||
assets:update(dt)
|
||||
self:updateCamera(dt)
|
||||
|
@ -104,8 +104,8 @@ function Level:drawHUD(dt)
|
|||
local weapon = 0
|
||||
assets.textbox["yellowbox"]:draw(16,16,24,24)
|
||||
|
||||
if self:playerHaveObject(1) then
|
||||
local player = self:getPlayerByID(1)
|
||||
if self.playermanager:playerHaveObject(1) then
|
||||
local player = self.playermanager:getPlayerByID(1)
|
||||
hp = player.hp / player.stats.maxHP
|
||||
mp = player.mp / player.stats.maxMP
|
||||
weapon = player.weapon
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
local PlayerManager = Object:extend()
|
||||
local Obj = require "scenes.levels.entities"
|
||||
|
||||
function Level:resetPlayers(player)
|
||||
self.players = {}
|
||||
self.deathTimer = -100
|
||||
function PlayerManager:new(scene)
|
||||
self.scene = scene
|
||||
self.players = {}
|
||||
self.deathTimer = -100
|
||||
self.activePlayer = -1
|
||||
self.startx, self.starty = self:getStartPosition()
|
||||
self.startx, self.starty = self.scene:getStartPosition()
|
||||
end
|
||||
|
||||
function Level:addPlayer(pigID)
|
||||
function PlayerManager:addPlayer(pigID)
|
||||
-- Enregistrer le joueur n'est pas le rajouter à une liste des objets qui existe,
|
||||
-- mais juste insérer ses informations les plus importantes afin d'aider le jeu
|
||||
-- à pouvoir le reconstruire.
|
||||
|
@ -18,14 +20,14 @@ function Level:addPlayer(pigID)
|
|||
table.insert(self.players, play)
|
||||
end
|
||||
|
||||
function Level:spawnPlayer(playerID)
|
||||
function PlayerManager:spawnPlayer(playerID)
|
||||
local play = self.players[playerID]
|
||||
Obj.Player(self, self.startx, self.starty, playerID)
|
||||
Obj.Player(self.scene, self.startx, self.starty, playerID)
|
||||
self.activePlayer = playerID
|
||||
end
|
||||
|
||||
function Level:getPlayers()
|
||||
local itemList = self:getEntities()
|
||||
function PlayerManager:getPlayers()
|
||||
local itemList = self.scene:getEntities()
|
||||
local playerList = {}
|
||||
|
||||
for i,v in ipairs(itemList) do
|
||||
|
@ -37,10 +39,14 @@ function Level:getPlayers()
|
|||
return playerList
|
||||
end
|
||||
|
||||
function Level:getPlayerByID(id)
|
||||
local itemList = self:getEntities()
|
||||
function PlayerManager:getPlayerByID(id)
|
||||
local itemList = self.scene:getEntities()
|
||||
local player
|
||||
|
||||
if (id == nil) then
|
||||
error("You must have an ID to search")
|
||||
end
|
||||
|
||||
for i,v in ipairs(itemList) do
|
||||
if (v.playerID == id) then
|
||||
player = v
|
||||
|
@ -50,15 +56,15 @@ function Level:getPlayerByID(id)
|
|||
return player
|
||||
end
|
||||
|
||||
function Level:playerExist(id)
|
||||
function PlayerManager:playerExist(id)
|
||||
return (self.players[id] ~= nil)
|
||||
end
|
||||
|
||||
function Level:setDeathTimer(timer)
|
||||
function PlayerManager:setDeathTimer(timer)
|
||||
self.deathTimer = timer
|
||||
end
|
||||
|
||||
function Level:playerHaveObject(id)
|
||||
function PlayerManager:playerHaveObject(id)
|
||||
player = self:getPlayerByID(id)
|
||||
|
||||
if (player == nil) then
|
||||
|
@ -68,8 +74,7 @@ function Level:playerHaveObject(id)
|
|||
end
|
||||
end
|
||||
|
||||
function Level:updatePlayerSystem(dt)
|
||||
|
||||
function PlayerManager:update(dt)
|
||||
if (self.deathTimer > 0) then
|
||||
self.deathTimer = self.deathTimer - dt
|
||||
elseif (self.deathTimer > -100) then
|
||||
|
@ -77,3 +82,5 @@ function Level:updatePlayerSystem(dt)
|
|||
self.deathTimer = -100
|
||||
end
|
||||
end
|
||||
|
||||
return PlayerManager
|
||||
|
|
|
@ -14,6 +14,7 @@ function Player:new(level, x, y, playerID)
|
|||
self:initAnimations()
|
||||
|
||||
Player.super.new(self, level, "player", x - (w / 2), y - (h / 2), w, h)
|
||||
self.manager = level.playermanager
|
||||
|
||||
self.center = {
|
||||
x = self.x,
|
||||
|
@ -33,7 +34,7 @@ function Player:new(level, x, y, playerID)
|
|||
end
|
||||
|
||||
function Player:getStats(playerID)
|
||||
self.pigID = self.level.players[playerID].pigID
|
||||
self.pigID = self.manager.players[playerID].pigID
|
||||
self.stats = game.pigmanager:getPig(1)
|
||||
self.playerID = playerID
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue