2

Cocos2d-JS は、Cocos2d-html5 と Cocos2d-x JavaScript バインディングを含む Cocos2d-x エンジンの JavaScript バージョンです。Cocos2d-x の完全な機能と簡素化された JavaScript フレンドリーな API を使用して、クロスブラウザーおよびクロスプラットフォームの機能をゲームに装備します。

あなたが JS を書いていて、どこでも動作することは理解していますが、それはどのように行われますか? この図を理解したい: http://www.cocos2d-x.org/wiki/Getting_Started_Cocos2d-js私が理解しているように、cocos2d-html5 は cocos2d-x と同じものですが、JS であり、WebGL に基づいています。これが本当なら、Cocos2d-JSB とは何ですか? JS スクリプトをネイティブ コードにコンパイルしますか? それとも、ネイティブ インタープリター以上のことを理解し、cocos2d 固有のコマンドを解釈できる JS 拡張インタープリターですか?

4

2 に答える 2

0

Cocos2d-x は、Firefox JS 仮想マシン (VM) である SpiderMonkey を使用して JS コードを実行します。

JS VM は、すべての cocos2d、Chipmunk、および CocosBuilder リーダー API をサポートするように拡張されています。したがって、JS で CCSprite を作成すると、実際には C++ CCSprite が作成されます。JS でアクションを作成すると、実際には C++ アクションが作成されます。JS でパーティクル システムを作成すると、実際には C++ パーティクル システムが作成されます。このアプローチは、directCanvas などのアクセラレーターを使用する場合でも、HTML5 ゲームよりも約 10 倍から 20 倍高速です。ただし、次のシナリオに注意する必要があります。 ガベージ コレクターの実行中にパフォーマンスが低下する可能性があります。回避策: 多くの JS オブジェクトを作成しないでください。できるだけ多く再利用する 複雑なメイン ループがあると、パフォーマンスが低下する可能性があります。回避策: JS コードをプロファイリングします。さらに最適化できない場合は、

これはウィキからです。そのため、JS インタープリターは、create Action や create Sprite などの cocos2d api コマンドを理解できるように拡張されています。

于 2014-10-28T20:10:26.483 に答える