local PlayerInfoManager = class("PlayerInfoManager") function PlayerInfoManager:ctor() --[[ playerInfoList = { [uid] = {name = "zhangsan", sex = 0, head = "http://www.dingdingqipai.com/head.png"}, [uid] = {name = "zhangsan", sex = 0, head = "http://www.dingdingqipai.com/head.png"}, [uid] = {name = "zhangsan", sex = 0, head = "http://www.dingdingqipai.com/head.png"}, } --]] self.playerInfoList = {} self.fileName = "PlayerInfoManager"; self.waitingSave = false self.handlerWaitingSave = nil -- 初始化 self:loadPlayerInfoList() end -- 所有子游戏战绩里面的玩家信息都要保存在这里共用 function PlayerInfoManager:addPlayerInfo(uid, name, head, sex) if not uid then return end local playerInfo = { name = name or "", head = head or "", sex = sex or 0, } self.playerInfoList[tostring(uid)] = playerInfo; self:savePlayerInfoList(); end -- 通过ID获取玩家信息 function PlayerInfoManager:getPlayerInfo(uid) if self.playerInfoList and uid then return self.playerInfoList[tostring(uid)] end return nil end function PlayerInfoManager:loadPlayerInfoList() local jsonString = loadStringFromFile(self.fileName) if jsonString then self.playerInfoList = json.decode(jsonString) or {} end end function PlayerInfoManager:savePlayerInfoList() if self.waitingSave then return end self.waitingSave = true self.handlerWaitingSave = cc.Director:getInstance():getScheduler():scheduleScriptFunc(function() if self.handlerWaitingSave then cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.handlerWaitingSave) end self.waitingSave = false; local jsonString = json.encode(self.playerInfoList) saveStringToFile(jsonString, self.fileName) end,1.0,false) end return PlayerInfoManager