ゲーム開発の備忘録

趣味のゲーム開発でのノウハウや、技術的に嵌ったポイントを忘れないように書き記しておくブログです。

libGDX

MobiVMでビルド時にIBAgent-iOS failed to launchが発生した際の対処法

はじめに 今回はMobiVMでCreate IPAを実行した際にIBAgent-iOS failed to launchが発生し、ビルドが失敗した際の対処法について説明します。このエラー自体はMobiVMを利用しないiOSアプリ開発でも発生することがあり、エラーメッセージで検索するとXcodeの再…

MobiVMでビルド時にAssertion Failed: (aliasSectionNum == sectionNum && "alias and its target must be located in the same section")が表示される場合の対処法

はじめに 今回は、MobiVMでビルド時にAssertion Failed: (aliasSectionNum == sectionNum && "alias and its target must be located in the same section")という、アサーションチェックに失敗した旨のエラーメッセージが表示された場合の対処法について共…

libGDXでMobiVMを用いてiOS版アプリを開発する

はじめに 2018年11月に、RoboVMが開発終了し、iOS12が非対応となったため、libGDXのiOSバックエンドをIntel-MOEに変更しなければならなくなった旨について記事を書きました。 deep-verdure.hatenablog.comIntel-MOEも大元のIntel側での開発が終了し、有志に…

libGDXでPlay Asset Deliveryに対応する

はじめに Androidアプリをリリースする場合、Google Play Storeにて、AAB(Android App Bundle)を提出する必要があります。しかし、AABにはサイズ制限があり、150MBを超過すると、そのままではアップロードできなくなってしまいます。以前は、APK拡張という方…

libGDXのios-moeプロジェクトのビルドでcompileJavaタスクに失敗する場合の対処法

かなり短いですが、嵌ったのでメモ。Gradleのバージョンを6.7.1にしてから、libGDXのmoeIpaBuildや、moeLaunchといった、ios-moeプロジェクトのビルドを含むタスクが失敗するようになってしまいました。 暫定対処策 一度、手動でios-moeプロジェクトのother…

libGDXでSpriteの座標が(0, 0)から移動できない場合に確認すべきこと

新年一発目は超絶短い記事ですが、地味に嵌ったのでメモ。libGDXでSpriteの座標の初期位置としてSprite#setPosition()に正方向の十分大きい数を渡し、画面内に描画させないようにすることを考えます。この時、KotlinのFloat.MAX_VALUEを設定すると、なぜか座…

libGDXでRoboVMからIntel MOEへの移植を行う エミュレータ上での動作確認編

動作環境構築 絶望のjava.lang.NoClassDefFoundError KotlinコードのJavaコードへの書き直し Retrolambdaとの共存のための対応 バインディングライブラリのリンク おわりに RoboVMやIntel-MOEについてご存知でない方や、RoboVMのコード移植が完了していない…

libGDXでRoboVMからIntel MOEへの移植を行う コーディング編

はじめに -libGDXでのiOSアプリケーションの作成について- 基本的なランチャーコードの移植 RoboVM関連のimport文の修正 メソッド名の変更 ジェネリッククラスインスタンスの共変指定 配列取得コードの変更 NSMutableArrayが必要なコードの対応 特殊なコード…

Kotlinで書いたlibGDX利用プロジェクトをAndroid Studio 3.2でビルド時に"Cannot change attributes of configuration ':[app名]:kapt' after it has been resolved."が出力される場合の対処法

経緯 Android Studio 3.2にアップデートすると、Gradle 4.6未満のプロジェクトは扱えなくなります。私はlibGDXを利用してAndroidアプリケーションをKotlinで書いていたのですが、gdx-setup.jarによるlibGDXプロジェクトセットアップ時のデフォルトのGradleは…

libGDXでAndroidのAPK拡張に対応する

はじめに AndroidアプリはAPKのサイズが100MBを超過すると、そのままでは開発者コンソールにアップロードできなくなります。 そこで必要となるのが、アセットファイルの一部または全部をAPKから拡張ファイルとして切り出し、APKそのもののサイズを大きく減ら…

libGDXでモバイルアプリ開発時にタッチ位置が画面内位置とずれる場合の対処法

はじめに libGDXでモバイル端末向けゲームを開発時にチュートリアルや入門記事通りに進めると嵌る可能性が高いのが、画面内のボタンをタッチして押そうとしてもタッチ位置がずれるため、正常に判定ができないという問題です。 私も開発中期の頃に嵌ったので…

libGDX等、RoboVMを利用したプロジェクトでのIPAアップロード時にITMS-90035で却下される場合の対処法

経緯 libGDXを用いて制作したアプリの更新版IPAをApplication Uploaderから、App Storeにアップロードしようとしたところ、ITMS-90035エラーによってアップロードが却下されました。 ググるといろいろ記事は出てくるのですが、なかなか解決策までたどり着け…

libGDXプロジェクトのiPhone実機デバッグで@NotNullなメソッドがnullを返す際の対処法

前提条件 Android Studio for Mac 3.1 RoboVM 2.3.3 Gradle4.4 対象のiOSはiOS11 経緯 libGDXを用いたプロジェクトのiPhone実機デバッグを試みたところ、 @NotNull method org/robovm/idea/running/RoboVmRunProfileState.startProcess must not return null…

libGDXプロジェクトをiOSエミュレータで実行時にGradleが吐くエラーの解決法

前提 Android Studio for Mac 3.1 RoboVM 2.3.3 Gradle4.4 経緯 libGDXを用いてiOSアプリを作成し、いざエミュレータで実行しようとしたら、 Could not run build action using Gradle installation のエラーが発生。 Gradleのバージョンを変えてみても解決…

libGDXプロジェクトビルド時に発生するorg.bouncycastle.jcajceの競合が解決できない場合の対処法

蓋を開けてみたら滅茶苦茶初歩的なミスが原因でしたが、エラー内容から原因を推測できず、ググっても対処法が分からず、時間をかなり浪費したので自戒の意味も込めて記事にしておきます。 経緯 libGDXを用いてAndroidアプリ開発をしていましたが、 Mac, iPho…

libGDXでBGMをAssetManagerで管理すると再生が効かなくなる場合がある

libGDXには、ゲームで使用する素材(画像、効果音、BGMなど)を管理してくれる、AssetManagerというクラスが用意されています。 AssetManagerについては以下を参考にしてください。westplain.sakuraweb.com qiita.com非常に便利な機能も有しており、基本的には…

libGDXでBGMの任意位置からのスムーズなループ再生を実現する

libGDXで用意されているBGMのループ処理 libGDXではBGM再生ももちろんサポートされています。 具体的には、任意の楽曲ファイルを指定してMusicインスタンスを生成します。 このMusicインスタンスを介して、楽曲の再生や停止、音量調整を行います。BGMのルー…

libGDXでαブレンディング以外のブレンディングを実現する

libGDXはゲーム開発を補佐するライブラリであり、 DXLib等の有名なライブラリと同様に、描画等の処理を簡単に実現するための関数群が用意されています。 が、ブレンディングの設定に関しては関数が用意されていません。 αブレンディングであれば、TextureやB…

libGDXの落とし穴とその対処法の一覧

はじめに 私はAndroidアプリ開発にlibGDXというライブラリを使っています。 libGDXの概要については、以下の公式ドキュメントの日本語訳をご覧ください。 はじめに - libGDXドキュメント 日本語訳 他のライブラリに比べて非常に優れている面ももちろんあるの…