UrhoSharpのプロジェクト設定方法

「Xamarin」の「UrhoSharp」の設定方法を4つ紹介します。

①プロジェクトフォルダで「右クリックメニュー」の「オプション」メニューで、「ビルド」→「全般」→「ターゲットフレームワーク」→「.NET Portable」→「Change」ボタンを押し、「.NET Framework」「Windows 8 or later」「Windows Store apps(Windows 8)」「Xamarin全部」にチェックを入れ、それ以外のチェックは外します。
これで「UrhoSharpパッケージ」が追加できるようになります。

②3つのフォルダのそれぞれを「右クリックメニュー」で「追加」→「NuGetパッケージの追加」で、右上の検索窓に「UrhoSharp」を入力し、選択して「Add Package」ボタンを押します。

③Droidフォルダを「右クリックメニュー」の「オプション」メニューで、「実行」→「構成」→「Default」→「Intent」タブ→「明示的インテント」→「Activity」でActivityを指定すると、「Back」ボタンでActivityを終了できるようになります。

④iOSフォルダを「右クリックメニュー」の「オプション」メニューで、「ビルド」→「iOS Build」→「パッケージ」→「PNG画像の最適化」のチェックを外します。
これで「RGB(A)」→「BGR」で色が入れ替わらなくなります。

CocosSharpの戻るボタンと終了処理の問題

「CocosSharp」には重大な欠陥があります。
それはAndroidのバックボタンが使えないことと、終了処理ができないことです。
英語圏で調べると、Back Buttonは上書きできなくはないようですが、終了処理は駄目らしいです。

そこで解決策として「Xamarin.Forms」版の「CocosSharp」を使えば問題が無くなります。
ただラッパーの上にさらにラッパーしてるかもしれないので、CPUやGPUの負荷が大きいかもしれません。

でも「Xamarin.Forms」で「UI」が楽に実装できるので、ゲームに用途を限定しなければ、逆に役に立つ実装方法かもしれません。

Segmented Control FormsPluginとAndroidのバージョン

「NuGet」で取得できる「Segmented Control for Xamarin Forms 1.1.0」ですが、「Android API 15+」で使用できるとありますが、どうやらデバイスによっては動作しないようです。

segmentedcontrol
https://github.com/alexrainman/SegmentedControl

僕が試したのは「Android4.2(API 17)」の「Galaxy Nexus」ですが、エラーが出て動作しませんでした。
でも「Android 6.0(API 23)」のエミュレーターでは動作したので、「これは端末のバージョンに問題があるのでは?」と考え、親の「Android 4.4(API 19)」と「Android 5.0(API 21)」で試すとどちらも実行できました。
ただしAndroid 4.4では若干絵がずれていますが。
やはりAndroidも新しい機種を使わないと時代に乗り遅れるなあ、と思った次第です。

Xamarinでサウンドファイルが再生できない場合

XamarinStudioやVisualStudioでサウンドファイルが鳴らない場合の設定方法があります。
プロジェクトビューのサウンドファイルを右クリックメニューの「ビルドアクション」で「Content」を選ぶだけです。
そうすれば「CCSimpleAudioEngine.SharedEngine.PlayEffect」でサウンドが再生できるようになります。
これはiOSの場合だけで、Androidでは無理にこうしなくても鳴らすことができるようです。

C#言語でスマホアプリ開発はUnityとXamarinで

シンプルなのにパワフルで人気のプログラミング言語「C#」を使って、iOSやAndroidやWindowsとの間でクロスプラットフォームするIDE(統合開発環境)を紹介します。

■2Dや3Dゲームを作るならゲームエンジン「Unity(ユニティ)」がオススメです。
http://unity3d.com/jp/
10万ドル未満の収入の個人でも会社でも無料版が使えます。
Windows版とMac版があります。

■ツールを作るなら「Xamarin(ザマリン)」がお勧めです。
https://www.xamarin.com
個人か、年商100万ドル未満の会社なら無料版が使えます。
Windows版とMac版があります。

どちらもC#言語も使えて、無料プランがあるのが嬉しいですね。

Yahoo!カテゴリで「スマホ対応」マークを付けてもらうには?

「ROXIGA.COM」というホームページをYahoo!カテゴリで「スマホ対応」のマークを付けてもらいました。
http://dir.yahoo.co.jp/Computers_and_Internet/Mobile_Computing/Cellular_Phone_and_PHS/Cellular_Phone/Mobile_Games/

「スマホ対応」マークの付けてもらい方は、まず最初にYahoo!カテゴリにホームページを登録してもらいます。
それからカテゴリサイトの「変更」の手続きで「スマホ対応」をお願いしたら、スマホに対応している場合は多分必ずマークを付けてもらえます。

このやり方で、「HTML5研究所」というホームページも「スマホ対応」のマークを付けてもらいました。
http://dir.yahoo.co.jp/Computers_and_Internet/Programming_and_Development/Programming_Languages/JavaScript/Games/

Twitterで発言したらYahoo!カテゴリに登録してくれた

先日Twitterでこうぼやきました。

「ドコモの賞でグランプリ、GMOの賞で音楽部門大賞、Sonyの賞でファイナリストになった自作Androidアプリ達のサイト「ロクシーガ(ROXIGA.COM)」がYahoo!カテゴリに載せてもらえない。なぜ?」

するとYahoo!カテゴリの公式アカウントさんがそれを見たらしく、運よくYahoo!カテゴリに掲載してもらうことができました。
http://dir.yahoo.co.jp/Computers_and_Internet/Software/Operating_Systems/Android/Applications/
http://dir.yahoo.co.jp/Computers_and_Internet/Mobile_Computing/Cellular_Phone_and_PHS/Cellular_Phone/Mobile_Games/

コメントにもあるように、ゲームやアプリだけでなく、プログラミングするための3Dライブラリやそれを自分で解説した入門書の紹介や、英語版まで作ったので、充実した内容だと思っていたので、やっぱり掲載される基準を満たしていると思っていました。
https://roxiga.com

VisualStudio2015のAndroidデバイス認識

Visual Studio 2015でハイブリッドアプリ(HTML5アプリをスマホアプリに書き出すツール)を開発できる「Visual Studio Tools for Apache Cordova」は「Android4.0」の実機のデバイスでも認識しました。
多分もっと古いデバイスでも認識するかもしれません。
きっと処理能力が遅くてもHTML5アプリはスピードを要求されないためでしょう。

ところが「Visual C++ 2015のクロスプラットフォーム」では「Android4.4」以降でないと実機を認識しません。
これはAndroid NDKをC++で開発するのに最新の機能を使っているためだと思います。
ですから処理能力は非常に高いと思います。

CordovaでAndroidアプリにした時戻るボタンの不具合

特にVisual Studio 2015の「Visual Studio Tools for Apache Cordova」でハイブリッドAndroidアプリにしたときにバグがあるようです。
Visual Studio 2013版では大丈夫でしたが。

Androidの左下の「戻るボタン(Back Button)」を押してアプリを終了させた後、アプリを再度起動すると動作に不具合が出ることがあるようです。
原因は、「バックボタン」は「ホームボタン」でもなく、完全に終了もしないためのようです。

デバイスの準備ができた時に、例えばindex.jsファイルに以下のようにコーディングして、完全終了させるといいみたいです。

function onDeviceReady() {
document.addEventListener(‘backbutton’, onBackButton.bind(this), false);
};
function onBackButton() {
navigator.app.exitApp();
};

OnsenUIでnavigation-barの文字が見切れる仕様

HTML5ライブラリ「Onsen UI」を使うと、Androidのブラウザで問題がありました。
ナビゲーションの上部のバーの文字が途切れる仕様があります。
原因はナビゲーションバーの子に「center」クラスを作ると「navigation-bar–android__center」クラスが付加されるのですが、その最大幅が「max-width: 50%;」に強制されるからです。
そこでcssで、以下のように「navigation-bar–android__center」クラスを上書きしてやれば、スクリーン幅までテキストを表示できました。

.navigation-bar–android__center {
width: 100%;
max-width: 100%;
}