Cocos 2 d IOSをCocos 2 d-x Androidデバイスに移植

1347 ワード

詳細
最近、友达にIOS上のcococos 2 dゲームをアンドロイドプラットフォームに移植して、CPPのコード量は大体1万行ぐらいで、大きくても大きくないと言っていますが、本当に小さくありません.何日か移植して、ツッコミを入れました.
まだこのような自動化ツールがないため、多くの部分は私たちの人工で変換する必要がありますが、これは私たちが怠け者を盗むことができないことを示していません.自動化できるものについては、もちろん直接置き換えます.例えば、
  • [selfをthisに置き換える->間違いない.
  • はまだできます];に置き換えます).
  • -(void)をvoid CLASSSNAMEに置き換える::基本的には大きな間違いはありません.もちろん、Objective-Cのいくつかのクラスの実装が1つのファイルに含まれていると、確かに問題が発生します.
  • CGgloatはtypedefからfloatにすることができ、あるいはいっそすべてfloat
  • に置き換えることができる.
  • Objective-CではNSMutableArrayの遍歴にコードを書くのは便利ですが、cococos 2 d-xではそうではありません.CCArrayの遍歴には面倒ですが、基本的にはこの様子:
  • 
    CCObject *pObj = NULL;
    CCARRAY_FOREACH(array, pObj) {
      CCSprite *sprite = (CCSprite*)pObj;
      ...
    }
    

    cococos 2 d-xには直接対応するNSNumberクラスはなく、基本的にCCStringを使ってfloatValue()などの関数を呼び出すことができます.しかし、時には直接的ではないことがあります.Objective-Cではidというタイプを使うことができるので、isClassOf()などのダイナミッククエリの関数を使うことができますが、このとき直接移植するのはちょっと面倒です.脳をすべてCCObjectにし、実行時にC++のdynamic_を呼び出すかcast(v)でやります.
    総じて,cococos 2 d−xとcococos 2 dはAPIの命令においてできるだけ一致しているため,移植過程は直感的である.
    後記:
    自分で前にどのようにcococos 2 dをcococos 2 d-xに変えた経験を書いて、今いくつかのデフォルトの操作を1つの簡単なツールに完備して、これが半自動のツールにすぎないことに注意して、やはり多くの未完備な機能があります.このツールはobjective-cの文法を顧みず、objective-cの文法を理解できれば、より良い変換ができます.これは次の目标にしておきましょう.:)
    コードの倉庫はgithubのここにあります
    ご意見をお待ちしております.貢献コード:-)