CC、タイムロック機能を実装するぞ


2017年 4月14日~5月1日
 
 
 よ~し、んでは再開するにあたってまず変更の柱である「タイムロック(Time Lock)機能」をつけてみるかいな、と。

 あ~ひさしぶりにプログラム触るので、何がなんだか。
 
 
 と、その前に世の中に他にタイムロックが無いか調べてみる。

 
 ああ、アプリでもタイムロックって色々あるのね。

 物理的な時間ロックの箱もあるのか「タイムロッキングコンテナ」ふ~ん。
 何々、コンセントに南京錠をかけて鍵をタイムロック箱に放り込む、なるほどよく考えるもんだな。

 ほほー親が遠隔操作で子供のスマホをロックできるアプリもあるのか「ディナータイム」
 なるほどねえ、これは LINE疲れを防止目的みたいだけど。

 ペアレンタル・コントロール、定番の「ドコモ あんしんモード」、ロックアプリ、ふむふむやはり色々やってるんだねえ。

 子供の側でロックを解除する方法とか、それを阻止するアプリ「AppLockの拡張機能 Advanced Protection」とか。

 「あんしんキッズロック」「まもるゾウ」「ミマモール」
 はあ、やっぱり色々やってるんですね。
 
 
 
それじゃあプログラム
 
 
 それでは、まず HSPで時間計測の gettimeをやってみる。

 gettime(n) の nの値で計測できる内容を変えられる。

 いつやってるか良く分かるね(笑)

 曜日の 3というのは水曜日だと思う。
 
 
 次に gettimeがスマホでも有効なのかどうか確認しないといけない。

 スマホ用のコンパイルはどうやるんだったか、もう忘れてるよ。

 という訳で自分で書いたものを参照する事にする。
 う~む、こりゃ便利。
 
 
 それじゃあ、ビルドして、スマホ(android)に転送して、スクリーンショットとって、と。

 うん、大丈夫みたい。
 
 
 
ゲームにタイムロック機能を実装してみる
 
 
 さて、どう実装しようか?

 これがメインルーチンだけど、メインルーチンの始まる前(データ読み込み前)にチェックプログラムをぶち込んでみるかな。
 う~む、増築工法でスパゲティプログラムの温床だが仕方ない。

 いや、まて、最初を mainf=8にして 8番目に書くのもアリだな、まあややこしくなるからいいか。
 
 
 まあこんな感じでいいかな。

 
 
 プログラムはこんな感じ

 引数の dtnは CCの全データを扱ってる。
 全データに埋め込めば saveデータを消去してリセットされにくい。

 データは、月、日、プレイ時間、の 3つで大丈夫なようだ。

 今回は夜の 9時から朝の 5時まではゲームできない仕様にしたので、0時の日をまたぐ処理をしなくていい。
 もし日をまたいでゲームをするようなら、もう少し複雑になると思う。

 時間外なら f(フラグ)を 1にして戻して終了。

 計算のため時間は全部 s(秒)で換算して扱う。
  時間×3600秒 + 分×60秒 + 秒 = 合計秒
 
 
 次にプレイ中の時間計測プログラムは次の通り

 今遊んでる時間(tl_n)は、現在時間(tl_g)- ゲーム起動時間(tl_s)+ saveされていたプレイ時間(tl_ds)で求められる。

 30分は 1800秒なので、それを越えたら終了となる。
 
 
 表示は 3分を切ったら赤色で秒のカウントダウンも表示する事にした。


 
 
 次に時間外なら TIME LOCK中である事の警告表示画面を作る。

 画面の作成は HSPを使ってベタベタな方法でやった。


 
 
 こんな感じ

 これを BMPSAVE命令を使って一度.bmp画像にしてから、本プログラムでは画像を読み込んで使う。
 
 
 それじゃあ、完成したのをスマホに入れて動作確認するかな。
 
 
 まあ、大丈夫かな。


 
 
 という訳でタイムロック機能実装はこれで終わり、ちょっと時間がかかったけど仕事止めてからペースを取り戻すのにいつも時間がかかります。

コメントを残す

メールアドレスが公開されることはありません。