VisualStudio2015のC++でWin・iOS・AndroidをCrossPlatform

Visual Studio 2015のC++言語で、「Universal Windows Platform (UWP)」「Android」「iOS」の3つのプラットフォームに、OpenGL ES 2でクロスプラットフォームできるプロジェクトテンプレートが公開されています。
http://blogs.msdn.com/b/vcblog/archive/2015/07/30/cross-platform-code-sharing-with-visual-c.aspx

ただし、まだ64bit対応していません。
iOSでは32ビットと64ビットの両方に対応している必要があります。そうしないとappストアに申請できません。

またこの3つのプラットフォームに対応したサウンドライブラリが、OpenSLでいいのか?何がいいのか?わかりません。

jQueryMobileでbodyの背景色

jQuery Mobileではテーマに沿った配色などのデザインが強制的に適用されるようです。

例えばbodyで全体の背景色を指定しても変更できません。
そこで以下のように、bodyに指定されたui-mobile-viewportクラスをcssで設定すれば、背景色が変更できました。
body.ui-mobile-viewport {
background:#ccc;
}

CORDOVAなどiOS8でUIWebViewのバグ

HTML5アプリをスマホアプリに変換するハイブリッドアプリツール「Cordova」などからiOS8に書き出した場合などに、実機で実行する際に落ちるバグがあります。
原因はUIWebViewにあり、iOS8から新たにWKWebViewが出たのでそれを使えば解決します。
ただ現在のところCordovaからはUIWebViewに書き出すので、他の解決方法もあります。
Animationsを使わないのなら、Controllerファイルのinitメソッドで、
[UIView setAnimationsEnabled:NO];
を追加しただけで解決しました。

「天国への階段」でキャラクターが階段にめり込む問題

天国へと進む階段をひたすら登り続けるゲーム「STAIRWAY2HEAVEN」を最初に作ったのは、2002年のデジスタのどーもくん特集の時でした。
その頃は僕に技術がなかったので、キャラが階段を進むと次第に階段のモデルにめり込むバグがありました。
理由は階段は中心を軸に一定の距離を進んで次の階段が現れるけど、キャラは進む距離は階段と同じでも階段をショートカットできてしまうので、徐々に階段モデルとキャラが近づくためです。
そこで解決策ですが、階段を先に描画しZバッファをクリアすれば、キャラクターより手前にあるZ値はなくなり、めり込みはなくなりました。
ZバッファとはZ深度とも言われるように、ピクセルのZ方向(手前から奥へ)のZ値が現在のZ値より手前にある時だけピクセルを描画するものです。
本当は、物理計算で、階段との当たり判定を取る方がリアルになるのですが。

stairwayhttp://game.flash-lab.net/stairway/

XAudio2でアクセス違反が発生する問題

Visual Studio 2012のC++のMFCでしか確認していませんが、Xaudio2を使っていると必ずと言っていいほど、

初回例外が 0x5CCBA5E0 (CartoonD.exe) で発生しました: 0xC0000005: 場所 0x5CCBA5E0 の実行中にアクセス違反が発生しました。
ハンドルされない例外が 0x5CCBA5E0 (CartoonD.exe) で発生しました: 0xC0000005: 場所 0x5CCBA5E0 の実行中にアクセス違反が発生しました。

のようなエラーが出てプログラムが強制終了します。

原因はCOMが勝手にXAudio2のDLLをアンロードするためで、それを防ぐために、メモリーにXAudio2のDLLを明示的にLoadLibraryで読み込んだらいいようです。

以下の参考サイトに2種類の解決策のソースがあるので、いずれかを実装したらうまくいきました。

参考サイト:http://social.msdn.microsoft.com/Forums/vstudio/en-US/1833af9d-7f8c-4f77-a765-f626a3221f91/com-apartments-sta-object-corrupting-an-mta-object?forum=vcgeneral