万精油函数:(这里假设已经解析json)
解析:
获取文件中的字符串:
local data = cc.FileUtils:getInstance():getStringFromFile(“inst/*****.json”)
Json解码:
local jsonArray = json.decode(data)
self:addNpc(jsonArray.npc, self._cityBg)
function CityMainLayer:addNpc (jsonNpc, layer)
if not jsonNpc then
return false
end
self._npcSpineArray = {}
self._npcJsonArray= {}
for i = 1, #jsonNpc do
self._jsonAni = jsonNpc[i]
if not self._jsonAni then
return false
end
local srcJson = "role/spine/" .. tostring( self._jsonAni.src) .. "/" .. tostring (self._jsonAni.src) .. ".json"
local srcAtlas = "role/spine/" .. tostring( self._jsonAni.src) .. "/" .. tostring (self._jsonAni.src) .. ".atlas"
local x = self ._jsonAni.x
local y = self ._jsonAni.y
local spine = sp.SkeletonAnimation:create(srcJson, srcAtlas, 0.3)
spine:setAnimation(0, "idle", true )
layer:addChild(spine)
spine:setPosition(cc.p(x, y))
spine.Flag = true
table.insert(self ._npcSpineArray, spine)
table.insert(self ._npcJsonArray, self._jsonAni)
end
end
如果要点击调用:
local function onTouchEnded( self, touch, event)
for i, v in pairs(self._npcSpineArray) do
local locationInNode = self ._cityBg:convertToNodeSpace(touch:getLocation())
local rect = v:getBoundingBox()
if v.Flag and cc.rectContainsPoint(rect, locationInNode) then
self:npcSaying(self ._npcJsonArray[i], v)
v.Flag = false
end
end
end
直接添加json文件里面的所有配置信息
最新推荐文章于 2024-04-12 08:19:12 发布