久しぶりの更新2022/01/08 – 近況
有休消化中
ようやく退職が認められて、2月まで有休消化中です
のんびりとやりたい事をやっているおかげか、だいぶメンタル的にも安定してきました。
どうしてもやりたい事があると言って辞めたものの、本命のAIには中々手がつかない。
ずっと夢にしてきたものは、夢という位置に居座ろうとするんでしょうね。
夢を失ってでも夢に挑戦したいか、というジレンマ
とりあえずプログラミング三昧をしています。
プログラミング三昧
Androidアプリを作れるようになりたいと、Android Studioをインストールして勉強中です。
Androidアプリ開発の流れは、ボタンとかリストのようなオブジェクトを設置して、そのイベントハンドラを書くといった感じ。自由自在位に描画をしたければcanvasを使う、と、どの開発環境も似たような感じです。
kotlinはJavaを簡単にしたような言語で、Androidの公式開発言語だそうです。
when や 複数戻り値など新しい仕様が取り入れられていたり、関数定義がfunなどコーディング量が少なくて済むような工夫がされています。(最初見たときは何のファンなんだろうと思いました)
Android Studioのエラーチェックがとにかく凄くて、コーディング中に事細かく指摘してきます。
変数名にアンダースコアを使うな
変数名の1文字目を大文字にするな
その変数privateで良いよね?
そこはifじゃなくてwhenを使おうよ
valとvarの違い分かってる?
その綴り辺じゃない?
小姑か
使っていて、不満な点が1つありました。
参照渡しと値渡しの明示ができないため、オブジェクトが必ず参照コピーされてしまうという点。
C++のvectorのようなテンプレートクラスを作ろうとしたら、値が参照コピーされてしまうため、どうしても中身をコピーできず断念しました。
データを複製する場合は、要素をdata classにしてcopyメソッドを使用すれば良いのですがテンプレートの場合は型が定まっていないため.copyメソッドを呼び出せません。
これだけで10時間は取られた。(そして諦めた)
入門アプリ制作
新しい言語をやるときは先ずテトリス、だったのですが、ちょうど作ってみたいアプリがありました。
題目は方眼紙マッピングアプリ。
今Steamでウィザードリィ外伝というゲームが発売されて、人気が出てきています。
ウィザードリィは古典的な3DダンジョンRPGで、難度がとても高いのが特徴です。
地図が表示されず、あちこちに罠が仕掛けられていて、プレイヤーが手探りでダンジョンを探索するといったゲームスタイルです。
シンプルだけど、成長・リスク・報酬・乗り越えたときの達成感とRPGの楽しさが詰め込まれています。
プレイヤーは未知のダンジョンを方眼紙に書き込んで攻略します。
その補助ツールをAndroidで作ってみようと考えました。
制作1週間
1月2日にAndroid Studioを導入して朝から晩までプログラミング、現在1月8日。(正月どこ行った)
ようやく形になってきました。
canvasを使ってガリガリと描画処理を書き続けました。
ピンチイン・ピンチアウトによるスケール変更
ファイル入出力(新規作成・保存・読み込み・削除)
基本的な編集機能(元に戻す・やり直す・コピー・ペースト・領域シフト)
モード変更(キャラ移動視点・上向き固定・範囲編集)
描画(壁・ドア・一方通行)
負荷軽減(描画領域の計算・編集した部分だけUndoリストに加える等)
入力(アイコンパッドクラスの作成)
難しかったのが壁の処理、一方通行という仕組みがあるため、壁はこちら側と相手側の2枚で構成されるという形になります。
壁を設置したときに、相手側の壁も設置する。
範囲コピーしたときに、相手の向かい側の壁だけをコピーするといった特殊な処理が必要になります。
だいぶ脳みそをこねくり回しました
あとは領域回転処理と床の着色・アイコン設置を実装すれば完成かな。
壁を通り抜けられなくする探検モードとかもあると面白そうですね。
1000×1000のマップを作ってもカクつかず良い感じです。
使用中の動画
※アプリのアイコンにicons8.comのアイコンを使用しています。
なかなか良い出来じゃないでしょうか
これから
しばらくは、退職関係でごちゃごちゃしそうです。
挨拶まわりだの、役所の手続きだの。
目標に取り組むのは、全てを精算してからですね。
あとはお金の面。
有休消化中だから今のところ収支はプラスですが、それが無くなったらジェットコースター。
数年分の貯金はあるにせよ、のんびりはしていられない。
全力で夢に当たって砕けろですね。
最近のコメント