C++初心者が【cocos2d-x】を勉強する。

C++初心者が【cocos2d-x】を勉強する。
   

cocos2d-xを勉強する際に、勉強をしたことを書いていきます。
C++は全く触ったことない、objective-cはちょっと分かる程度のプログラミング知識しかないですが、iPhoneとAndroidのアプリを同時に作ることができるというcocos2d-xを覚えたい。

C++の本が、手元に無く、ネットでも余り初心者向けのサイトがないので、自力で勉強をしていきたいと思います。

デンプレートを比較して、C++の構文を見る

cocos2dとcocos2d-xのデンプレートプロジェクトHelloWorldを比較して、その違いでC++がどういったものなのかを見てみます。


コードの比較

cocos2d-iPhone



cocos2d-x


コードの比較と考察

メソッドの定義。


CCSceneが戻り値の型
HellowWorldがファイルの名前
::scene()がクラスメソッド

クラスメソッドを利用する


おそらく、クラスにあるクラスメソッドを利用する際には[ クラス名 :: メソッド ]の形にするようだ。
クラスメソッドのcreate()は、cocos2d-iPhoneで入れば[CCScene node]のような感じで初期化などをするメソッドなのだろう。

インスタンスメソッドを利用数


先ほどのクラスメソッドの場合は[ クラス名 :: メソッド ]のように利用していると考えられるのに対して、インスタンスメソッドは[初期化されたオブジェクト -> インスタンスメソッド名(引数)]のような形になるようだ。
なんだかメンドクサイ感じがする。


HelloWorldの出力を比較する

次は実際にHelloWorldを文字として出力している箇所を見ていきます。



コードの比較と考察


CCLabelTTFクラスで、クラスメソッドcreate()を利用している。
引数が3つあるので、それぞれ「文字」「フォント名」「フォントサイズ」を指定しているのがわかる。
これは形は違えどcocos2dと同じです。

画面のサイズを導くCCDirectorクラスも、クラスメソッドとインスタンスメソッド(getWinSize)を利用しているのがわかる。
getWinSize()が画面のサイズをCGSize型で返すメソッドなのだろう。cocos2dとメソッド名が微妙に違うんだな。

setPosition()がインスタンスメソッドで引数にCGPoint型を指定。
これはcocos2dのものとほぼ同じ。

最後はlabelを。CCLayerに追加しているインスタンスメソッドaddChild。
引数の1はおそらくZ値であると推定できる。

最後に

デンプレートの比較して、少し理解ができましたが、今回見たのは本当に基本中の基本のことだと思いますので、もっとcocos2d-xのコードを読まないといけないと感じます。
まだまだ情報が少ないので、効率が悪いですが、cocod2dと比較して、勉強していくしかないのかな。

C++及びcocos2d-xで何か良い勉強の仕方があれば、教えてください!

Related Posts Plugin for WordPress, Blogger...