最近の開発の記録(2021/5/24)

こんにちは、最近の開発の記録をばをば

みんなでつくるダンジョンのマップエディタのあたり判定

先日の記事で、みんなでつくるダンジョンに「マップチップを並べてマップをつくれるモード」を作っていることに触れましたが、あたり判定編集・判定まわりもこれに合わせて作っていました。

f:id:piyorinpa:20210524214844g:plain
当たり判定を設定しているところ

このように、マップチップを塗りつぶすと、その箇所が通行不可になるようになります。あたり判定処理を久々に書いたので、なかなかうまくいかずに時間がかかってしまいました。(ソースコードはこちら

f:id:piyorinpa:20210524223649p:plain
当たり判定処理のながれ

  • キャラクタの4隅のマップ座標(マップ座標 = マップチップの大きさ / ピクセル座標)を取得して、キャラクタにかかるマップチップを取得(画像1)
  • キャラクタにかかっているマップ座標から、あたり判定情報を確認する(画像の赤い部分があたり判定するマップチップとする)(画像2)
  • マップチップ(0, 0)とのめり込み量  d_{x1} , d_{y1} を計算(画像3)
    • めり込み量は、(キャラクターの大きさ+マップチップの大きさ)- キャラクタとマップチップの中心間距離 で求められる
    •  d_{x1}=w_c+w_p-d_{cx1}
    •  d_{y1}=h_c+h_p-d_{cy1}
  • マップチップ(0, 1) とのめり込み量  d_{x2} , d_{y2} を計算(画像4)
  • すべてのマップチップとの比較においてめり込み量が大きいほうの座標軸を確認
    • その座標軸ではないほうの座標軸のむきにキャラクタを移動する
    • 例の場合は  d_{xmax} = d_{x1} = d_{x2} <  d_{ymax} = d_{y2} となり、y方向のめり込み量が大きいので、x方向にキャラクタを移動する
    • キャラクタを d_{x} の分だけずらす(画像5)

これで「マップチップの配置」と「当たり判定処理」がそろい、いよいよマップチップなマップを構成できるようになりかけていますが、まだまだなんだか動作が不安定です。引き続き調整をがんばらねば...という雰囲気です。

あともうちょっとなので、もうちょっとだけおまちください~!

おてがるに質問フォームを設置できる仕組みづくり

おてがるに質問フォームを作りたいけど、Googleフォームなどだとやや要件を満たせない...という需要があり、これを解決する仕組みをつくったりしていました。

https://github.com/piyoppi/report-box

以下の要件を満たすように開発中です。

  • スキーマを記述するとそれっぽい質問フォームができて、回答をサーバに保存できる
  • ウェブサイトに埋め込めるようにする
  • 埋め込み元のウェブサイトが署名した任意のデータを回答に紐づけられる(たとえばどのログインユーザーが回答したか、などを記録できる)
  • 埋め込みたいウェブサイトなどから独立したシステムとして提供できる

これを自作ウェブアプリに組み込めるようにしたく、ちまちまとつくっているのでした。

最近の活動はこんなかんじでした。はやくマップエディタまわりを完成させたい~。ではでは。