前回のAnalog Clock 1 で課題としてあげた「秒針が1秒毎にカクカク動くのではなく、スムースに動かせる」件について、その後、ネット上でいろいろ検索してみた。
1番のポイントは、MIT App Inventor でミリ秒単位で時間を取得できるかどうかという点。
この点については、Stack Overflowの記事に「How can I get the current milliseconds from the current time」というのがあって、その記事に対する回答 (long millis = System.currentTimeMillis() % 1000;) を参考に、MIT App Inventorに当てはめて色々(回答の意味がわからないままで)やってみたら1秒のミリ秒単位での時間の取得ができた。
以下ブロック・コードの赤点線部分。Headingは回転の角度。時計回りは負数。-6は1秒の回転角度。
下に続く
アプリ実行のビデオ:
秒針の1秒毎のカクカクとした動きはなくなっている。
チェックのために、秒針、分針、時針の回転角度及び1秒のミリ秒単位での値を上部に表示した。
なぜこのようにブロック・コードするとうまくいくのか、はっきりとわからないので、ちょっとスッキリとはしないが。。。
ちなみに、前回のAnalog Clock 1 のアプリ実行のビデオは以下。
(前回は、アプリが開いた時に、秒針、分針、時針が12時を指していたが、これも、なぜかわからないも、突然アプリ実行と同時に現在の時刻を指し示すようになった。労せずして得るとはこのこと。なかなか面白い!また、最上部の時刻の表示を若干変更した。)
*************************************************************************
前回までのブロック:
MIT App Inventorで遊ぶ (Analog Clock 1)