たぶん週刊「今週の進捗」

1週間に勉強したことや実装したことをネタに、週に1回(主に土日に)更新していく予定です。「多分」なので、臨時休刊があってもご海容ください。

3/27~4/9の進捗

プロつく計画5-2:ユニティちゃん迷路を作る(8週目)

小目標

シーンの遷移を実装する

  • リザルトシーンの仕様を決める

先週のToDo

  • (1)ゲームの目的、スコアなどについて検討する
  • (2)オクルージョンカリングを本プロジェクトに適応する
  • (3)矢印がゴールの方向を向く機能を作る

進捗

(1)について

いくつか考えました。
とりあえず、候補の中からゲームの方向性を決めて早く実装したい。

(2)について

していませんでした。

(3)について

f:id:ZeitungM:20170410005959p:plain
できました。

来週の小目標

シーンの遷移を実装する
→リザルトシーンの仕様を決める
→ゲームの方向性(コンセプト、スコア等)を決める

来週のToDo

  • (1)ゲームの方向性を決めて、適当でもいいから実装する
  • (2)オクルージョンカリングを本プロジェクトに適応する

プロつく計画6:ランニング用走行距離計測アプリを作る(10週目)

小目標

位置情報取得ボタンの機能を実装する

先週のToDo

  • (1)Android Studioのレイアウトレンダリング時のRendering Problemメッセージの意味を調べる
  • (2)位置情報を取得するメソッドについて調べる

進捗

(1)について

絶賛放置中です…

(2)について

どうやら、位置情報の取得は Location クラスの getLatitude() と getLongitude() で行っているもよう。
で、適当に Location クラスのインスタンスを作ってメソッドを呼び出せばいいのかなと思って
やってみてもなかなかうまくいかない。

Location クラスのコンストラクタには適当な文字列を引数に取るものと、
既存の Location クラスのインスタンスを引数に取るものがあるらしくて、
前者の方法を採って位置情報を取得してみたのだが、
それで getLatitude() と getLongitude() を呼び出してみたら
何故か返り値の経緯度がどちらも 0.0 になっていた。

Location location = new Location("hoge");
double latitude = location.getLatitude(); // latitude には 0.0 が代入された

onLocationChanged(Location) ( Location が変化した時に呼び出されるメソッド )内では
ちゃんと経緯度を取得できているのに何故?

とりあえず今は取得した経緯度から距離を計算できればいいので、
経緯度を表すクラス変数を用意して、
onLocationChanged() が呼び出される度にそこに格納し、
位置情報取得ボタンを押したときそこから取得するようにしました。

f:id:ZeitungM:20170410010119p:plain

こんな感じでできました。

来週の小目標

距離の計算がどのくらいの精度で行えるかを確認する

来週のToDo

  • (1)Android Studioのレイアウトレンダリング時のRendering Problemメッセージの意味を調べる
  • (2)距離の計算がどのくらいの精度で行えるかを確認する

メモ

  • LocationをlocationManager.getLastKnownLocation(provider)で

初期化しているパターンはいくつかあった
Android Location API with the fused location provider - Tutorial

  • 何でも、最近は位置情報取得には android.location の替わりに

Google Location Services を使用することが推奨されているらしい。
sakura-bird1.hatenablog.com

  • 1回休むだけで、文章量スゲー増えたような気がする。