三日(坊主)日記

Yなサイトから分離。日々の日記や感想文など書いていきます。

タグ「ガラケーアプリ移植プロジェクト」を含む投稿8件]

携帯用のゲームをAndroid用に移植したくて直接AndroidStudioを弄ってたけど、
調べれば調べるほど、真面目にゲームエンジン使った方がいいよなこれ……と思えてきた。
なんか無駄なことしてて馬鹿馬鹿しく思えてきたので、一通り形になったタイミングで打ち切る。

Android向けに開発するのはもうツール系だけでいいや。
#ガラケーアプリ移植プロジェクト

#ガラケーアプリ移植プロジェクト
基本ルーチンの移植とついでのリファクタリングは完了、、かな?
基本のゲームループは問題なく移植できた感。
後はグラフィックをアップデートしてもっとゲーム的おもしろさを強化したい。。あ、タイトル画面とかまだや。


画像は特に関係のないアプリ制作中の息抜き絵
20231213113551-kky3ka.png

イラスト付き

#ガラケーアプリ移植プロジェクト
ゲーム部分を一部動かすまではなんとか。
クラスを整理しておきたいのと、ガラケーから移植したので素材の解像度があってないという問題が発生している……描き直しかなぁ……
あーせっかくだからなんか要素+してパワーアップしたいよなぁ(言うだけタダ)

#ガラケーアプリ移植プロジェクト
とりあえずエラー落ちなしで動くまではなんとか……(まともに動くとは言っていない)
Spriteクラスに相当する処理を書き足さないといけないのと、
過去の自分、何を思ってこんなメソッド作ったんですかね……みたいなのが沢山あって困る!!
(おそらく、Spriteみたく出来合いに頼ってたからコメントなしでもいいじゃろ、と当時は思っていたんだろうなぁ。)

いや、やりたいことは分かるんだけど、コメントない変数の意味が分からん的な意味で。
ひとまずコメントアウトしてそこらへん全部作り直す。

#ガラケーアプリ移植プロジェクト
メインループ移植して文字UIなところはガッツリ置き換え作業完了……っと。細かいレイアウト調整はあとでやる。

問題は画像関係。
MIDPのSpriteに頼っていたところを多分一からつくらんといかん。
今更ドキュメントを漁る気にはならないので、分かりやすい日本語リファレンスサイトあった のが助かる。
改めて読むとなかなか良いクラス揃ってるんだなー。ゲーム制作の参考になる。

Androidの方で代替になるクラスってあったりするんですかね……。

あと物理キーだったとこを削ったりタッチに対応したりも残ってるな……。

#ガラケーアプリ移植プロジェクト
ChatGPTくんがやってくれたこと
・SurfaceViewの大枠を書いてくれる(スレッド処理込み)
・FPS固定するコードを書いてくれる
・現在のFPSを画面に表示するコードを書いてくれる
……あれ、有能すぎんか?

まぁそのコードを鵜呑みにしたせいで仕様を勘違いして余計なことに悩んでしまっていた訳ですが!
(ダブルバッファリングが必要なのかと勘違いして色々調べていた。
そもそもSurfaceViewは標準でバッファされており、追加でバッファを用意する必要はモノによってはあるらしいが今回制作するアプリではおそらく必要ない)

まぁこれであとは画像コンバートして画面表示させて……をちまちまやっていったら完成する……はず……
あっオリジナル版では再生されなかったBGMとかどうしようかね……。

#ガラケーアプリ移植プロジェクト

あ、元がガラケーでどうせ1ループがくっそ重いからオリジナル版ではフレームレート固定とかやったことなかったんだった。
そのあたりどうやって実装するんだろ?

よし、ChatGPTに訊くか……。

「Android Studioでゲームを作成し、メインループのFPSを1秒間に60回に固定するためのコードを以下に示します。これは、SurfaceViewを使用しています。」

……まてまてSurfaceViewってなに!?→ググる→Canvas単体の描画繰り返すよりこっちのがゲーム向きなのか……という発見。
ChatGPTすげー!

#ガラケーアプリ移植プロジェクト

色々調査した結果目処が立ったので本格始動していく。
目標:これ をAndroid環境に移植したい。

https://blog.recruit.co.jp/rmp/mobile/re...
色々調べてみたらCanvasがAndroidでも使えるやん、ってことでまずは表示させるところから……だがActivityって何??ってところが壁だった。

まずは元プロジェクトから使えそうなクラスなどをコピペ移植。存在しないメソッドなどもあるので合わせて変更。

表示用のCanvasを作る……表示させるには?
どうやら、作ったCanvasのクラスを、表示を定義するActivityのxmlに追加しないといけないらしい。
そこの記述方法が分からなかったことがまず1つ。

参考書とか色々見て見よう見まねで書いてみた。……がエラーが発生。
https://android-note.open-memo.net/sub/t...
エラー箇所的にxmlかと思いきや、こっちに追加してやると良いらしい……で1つ。

これで最低限表示テストはできるだろう、ってエミュレーターが立ち上がってもすぐエラー落ちするんじゃが……。
普通にコードの記述が間違ってた……で1つ。

今日だけで3つの壁を乗り越えたぞ、がんばった。