Cocos

   Android 2.3以降
   iOS 5.0以降
   Windows Phone 8以降
   Mac OS X 10.7以降
   Windows 7以降
   Linux Ubuntu 14.04以降

playEffectで音が消える

BGMと効果音に分けて考えるといろいろ面倒なので、とりあえず全部を効果音として処理してみると
最初に再生したBGMが途中で切れて消えてしまう。何も効果音を発生させなければなり続けるのであるが
敵が多いところやショットの連射でかき消されてしまう。どうも再生した効果音は32chまで同時発音できるが
それ以上は最初のchを上書きしてしまうようである。ミキシングして1つのchから出力する方法はないものか。

includeのファイルパス

visualStudio / Cocosでそれぞれincludeパスの設定をひとつ「Classes」を追加する。

iOS/Mac兼用なので両方に設定する
VCでも設定する

includeのファイル名

VCでは標準ディレクトリの設定でファイル名前後の空白が認められたが、XCodeでは認められないので注意。またファイル名の大文字小文字もXCodeでは識別される。マルチでソースを書くときは、「ファイル名準拠」「余計な空白を入れない」に注意
#include<(空白)ファイル名(空白)>

ファイルが読み込めない、リソースのファイルパスの書き方がまずい?

"test.wav"は読めるが、"/audio/test.wav"がどうしても読めない。結局XCodeのプロジェクトへのファイルの参加のさせ方がまずかっただけっぽい。注意スべき点。

ここがすごく分かりやすかった。
http://kurogomapurin.hatenablog.com/entry/2014/06/05/012415

1.リソースの登録は2種類
・XCodeで青いフォルダーなら相対パスの記述ができる「asset/test.png」
・XCodeで黄色いフォルダーならファイル名だけでいい(実際のフォルダ構成と異なってもいい)

2.どうすれば青くなるか?
・Create groupsだと黄色くなる
・Create folder referenceだと青くなる

3.XCodeでのファイルツリーは実際のフォルダ構成と異なっても問題ない
・VCのソースツリーと同じ
・だから構成した後にファイルツリーの構成を変えても実際のファイルへの参照は途切れない
・実際のファイルを削除した時は赤く表示されて参照が切れていることを教えてくれる

4.フォルダをプロジェクトに追加した時、その配下のファイルはプロジェクトに自動的に登録されない
・Deleteしようとした時に参照を切るか聞かれる時は登録されてる
・ファイルを削除するか効かれる場合は参照されてない。削除すると実フォルダから消されるので注意

新しいプロジェクトを開始したい

とりあえず、プロジェクトを作りたい場所に以下をコマンドラインで打ち込む

> cocos new プロジェクト名 -p suplex.net.dqLib -l cpp -d プロジェクトを作りたいフォルダへのパス

cocosが対応している全てのプラットフォーム用のプロジェクトが作成される

Classesソースコードを書いていくフォルダC++で記述
Resources素材データ置き場画像、音楽ファイルなど
cocos2dcocos2dxのライブラリのソースC++ファイル群
proj.android旧android開発環境(Win/Mac)Eclipse開発環境
proj.android-studio新android開発環境(Win/Mac)android studio開発環境
proj.ios_macmac/iOS版(mac)XCode環境
proj.linuxlinux版不明
proj.win8.1-universalWindowsPhone対応環境(Win)Visual Studio環境
proj.win10Windows Store対応環境(Win)/Visual Studio環境
proj.win32Windows32ビット開発環境(Win)/Visual Studio環境

includeしてるのに関数が見えない

android版のコンパイルで失敗したこと。既にiOSでコンパイルが通ってるソースを
androidで新規に環境を構築してコンパイルしてもうまくいかない。
1つはビルドツールの最新版を使ってビルド失敗してた
1つはエラーにより特定ファイルのObjが生成できてなかったのでリンクできなかった
1つはandroid.mkファイルが正しく記述できてなかった
ソースファイルをmkに追加するときは、連続したファイル名の記述が必要、つまり1行で書かなきゃだめだけど、「¥」で複数行に切り分けた時に#でコメントアウトできる。しかしコメントアウトすると複数行になってしまうため、特定ファイルがコンパイル対象になっていなかった。
1つはCPPファイルを探しだしてくれるMKを記述する方法を見つけてコピペしたけど、「wildcard」はフォルダの中のフォルダを検索してくれないのにはまってた。

FILE_LIST := $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp) \
			$(wildcard $(LOCAL_PATH)/../../Classes/dir1/*.cpp) \
			$(wildcard $(LOCAL_PATH)/../../Classes/dir2/*.cpp) \

リンクで失敗する

A/AppMain.cpp、B/AppMain.cppの2つのファイルを用意してコンパイルする。もちろん、2つのファイルは別々の場所で中身も別物である。しかしOBJファイルはフォルダ分けされないで出力されるため、後からコンパイルされたファイルのOBJで上書きされることになる。結果、リンク時に「A/AppMain.cppの関数がない」ってことになるので注意。