luaファイルにプラグインを注入する方法

1348 ワード

1.初心
久しぶりにブログを更新しましたが、前にluaメタテーブルに関することを書きましたが、メタテーブルについて理解していなければ、駅構内でluaのメタテーブルやマルチ継承を検索することができます.今、quick cocosでゲームを書いています.暇になったら、横になった穴を更新してもいいです.余計なことは言わないで、今cocosで開発して、歩く道は多く企画あるいは美術でインタフェース(cocos studio)をつづって、それからあちこちcsbファイルプログラムをロードして、更にインタフェースに対して各処理を行います(creatorは使ったことがありません).そこで質問です.一般的な方法では、csbをlayerのchildとして読み込んで、getChild(階層が深いかもしれません)、csb上のコントロールをsetString、setTextureなど、何度も現れる可能性がありますが、どうすればいいのでしょうか.
2.ソリューション
いくつかのソリューションを提供します.
*        ,  csb   ,             
*         , setString    , setTexture       
*     local  ,    
*           ,      ,layer          

3.プラグインの実現方法
とても簡単で、数歩しかかかりません.
  • 書き込みプラグイン、e.g:
  • local ext = {}
    function ext:setString()
        -- do set string
    end
    
    return function (layer)
        for k, v in pairs(ext) do
            --     assert          
            assert(not layer[k], string.format("funciton %s exist", k))
            layer[k] = v
        end
    end
    
  • 注入
  • local layer = display.newLayer()
    require("ext")(layer)
    
  • を使用することで、
  • を直接使用することができる.
    layer:setString()
    

    4.まとめ
    この注入法を用いると,コードの繰返し量を大幅に減らすことができ,多くの共通の方法を増やさずに安全で効率的であることができる.注入の方法はextのreturn関数に重点を置き,.を用いる方法には別の書き方が必要である.暇な时間を待って、私はscene layerを管理するフレームワークを整理して、csbを読み取るなどのフレームワークをgithubに伝えます.