結構前に、CocosCreatorをC++で動かすという記事を書いたのですが、その続きです。
今回は実際に簡単なアニメーションを作成し、組み込むところまで書いてみます。
CocosCreator v1.4のプロジェクトをcocos2d-x(C++)で使う
掲題の通りです。久しぶりの投稿になっちゃいました。
CocosCreatorのv1.5から本格的にC++対応が始まるそうなのですが、実はもう使えるようになってたらしいので、そのやり方をまとめました。
(2017/8/21追記:ちょっとだけ詳細に書きました)
一応、以下で動作確認してます。
- MacOS(10.12)
- cocos2d-x v3.15
- Cocos Creator v1.6
cocos2d-xの環境構築は以下にとても丁寧に乗ってます。
cocos2d-x環境構築(Win/Mac両対応) | Project Flora
Cocos Creatorは本家から普通にインストールしちゃいましょう。
※ 使うためにはアカウント登録が必要です。登録怖いって人は捨てアドでもできると思ふ。
Cocos2d-x v3でShaderをいじってスプライトの輝度や明度を操作する
タイトルの通りです。
以前、blendFuncともう一つのスプライトを使って擬似的に輝度と明度を操作する方法を投稿したことがあるのですが、もっとちゃんと輝度と明度を操作したいと思うようになったのでその方法を調べてまとめました。
ついでに調べてる中でOpenGLがやってることがちょっとだけわかってきたのでそれも備忘として載せてます(まだOpenGLの知識は初心者に毛が生えそうで生えない程度なので、間違いがありましたらご指摘下さい)。
なお、シェーダーについては以下をとても参考にしました。
【TechBuzz】第9回cocos2d-x勉強会「シェーダ書いてますか?」
http://www.slideshare.net/nyagasuki/ss-44161092
続きを読む
Cocos2d-x v3にCriket Audioを導入するまで
掲題の通りです。
cocos2d-xにはAudioEngineとSimpleAudioEngineという二つのオーディオ制御モジュールが存在しますが、いずれもそれぞれ機能として不十分に感じたため、軽い制約で無料で使用できるCriket Audioを導入することにしてみたので、導入までの備忘としてメモしておきます。
なお、この記事は以下のサイトを参考にしてます。とても詳しく解説してくれてますし、この記事はそれをただぼくの環境用に(本当に備忘として)書き換えてるだけなので、こちらを参考にする方がいいかもです。
Cocos2dxで Cricket Audio を使ってみる 続きを読む
cocos2d-x v3で衝突判定を効率化する(4分木空間分割)
なんか真っ赤で怖いですがタイトルの通りです。
こちらは単なるサンプルですが、今作っているアプリで衝突判定に時間がかかるようになっちゃったので、効率化をはかるために4分木空間分割での衝突判定モジュールを作成しました。
ついでなのでGitHubでそのモジュールを公開しちゃいます。 続きを読む
ゲームプログラミングと流しそうめんの共通点について
Cocos2d-xの3.xでOpenSSLの暗号化とハッシュを利用する
掲題の通りです。
以前はCCCryptoというcocos2d-xのライブラリがあったんですが、随分と更新も止まっちゃってるんで他の方法を調べてたところ、OpenSSLのライブラリを入れることでCocos2d-xでもAESやSHA256などが利用できるようになるので、その導入方法を備忘としてまとめておきます。
※ただ、ぼくの環境だけかもしれませんがなぜかAES256はAndroidではうまくできませんでした(´・ω・`)「使えない」わけがないと思うんですが、うまく復号化されないんですよね…。知ってる人いたら教えてほしいです。
Cocos2d-x 3.xでSpriteの画像を簡単に変更する
久々の投稿です。
表題の通り、Cocos2-dxの3.xでSpriteのテクスチャ(画像)を簡単に変更する方法を備忘として書いておきます。
※ちなみに、3.xと書いてますが正確にいつから採用されたのかは調べてないので、バージョンによってはできないかもです(cocos2d-xの3.10では余裕でできました) 続きを読む
オブジェクト指向プログラミングの具体例(入門編)
前回の続きです。前の回ではオブジェクト指向として一番重要なのが「メッセージング」という概念だと記述しました。そして、作るべきオブジェクトの単位として
「現実をモデルとし、メッセージングを行える単位にまで整理した構造体」
だと(勝手に)定義しました。
現実をモデルとするのは、それが直感的にわかりやすいからですね。
そこで今回と次回を通じて、上記を想定にしてどのようなクラスを作るべきかを最初は簡単な例から考え、次にもう少し複雑なものを想定して考えていきます。
ちなみに、ソースコードはほとんど記述しません。ロジック部分は、オブジェクト指向とはほとんど関係がないからです。なので主にクラス図を使って説明していきます。 続きを読む
新人さんにオブジェクト指向について教えたときの説明
最近、新人プログラマさんにオブジェクト指向について教えたりする機会があったのですが、改めて自分の中でも整理する意図も兼ねてブログに説明した内容を記述します。
最初に断っておくと、(きっと多くの人もそうだと思うんだけど)ぼくも誰かから「きっちりした正解を学んだ」わけじゃありません。いろんな本やWebの記事を読んだり実際コーディングしたりしながら「たぶんこんなもんなんだろう」と自分なりに解釈した派です。
なので、ぼくも大いに誤解している可能性もあります。その際は指摘してもらえると嬉しいです。
※そもそも「オブジェクト指向」自体がなり曖昧な表現だとも思っており、いくらでも解釈できるが故に「これが正解!」といえるようなものはないんじゃないかなとも思ってます。
さて、オブジェクト指向とはなにか。
誤解を恐れずに自分の解釈を言えば、それは「整理術」です。それ以上でも、それ以外でもありません。
以下でそう思う理由なども含めて説明していきます。 続きを読む