天天看點

Quick-cocos2d-x的MVC架構之Views研究

這裡的view主要是model的界面實作

1.基本類定義

--實際是一個節點,為了能夠add到界面中

local PeopleView = class("PeopleView", function()

    return display.newNode()

end)

--構造函數傳入對應的model類

function PeopleView:ctor(People)

--儲存對應的model類

    self.people_ = People

--建立sprite

    self.sprite_ = display.newSprite():addTo(self)

--根據model的state更新圖檔

    self:updateSprite_(self.people_:getState())

end

--根據model的state更新圖檔,根據需求也可以改成按照等級改變

function PeopleView:updateSprite_(state)

    local frameName

    if state == "idle" then

        frameName = "HeroIdle.png"

    end

    if not frameName then

        return

    end

--圖檔事前通過display.addSpriteFrames函數讀入

    self.sprite_:setSpriteFrame(display.newSpriteFrame(frameName))

end

return PeopleView

2.建立對象

如果model并不顯示,就不用建立對應的view類

--先建立model對象

people = import("app.models.People").new({name="tom"}) 

--建立對應的view對象,要add到界面中    

app:createView("PeopleView", people):addTo(self):pos(500, 500)

繼續閱讀