はじめてのiOSアプリ開発

タイマーを使って時間制限をつけてみよう

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
タイマーとプログレスバーを使って、回答するまでの時間に制限を設けて、ゲーム進行がよりスリリングになるようにしてみましょう。
講師:
06:54

字幕

このレッスンではタイマーを使って 回答するまでの時間に 制限を設ける方法を説明したいと思います ではまずタイマーを使うために このViewController の上のところで NSTimer というクラスの タイマー変数を用意してください こうすることでタイマーを作った時に そのオブジェクトを 格納するための変数が用意できました ではその次にこのタイマーを 作っていくタイミングなんですけれども この makeProblem ここでタイマーを作っていきます タイマーの作り方は timer = NSTimer そして scheduledTimerWithTimeInterval というメソッドを使います 引数が多い方と少ない方とありますけど ほとんどの場合は多い方を使いたいという ケースが多いと思います ということで今回も多い方を使います このタイマーは 「0.1秒ごとに呼び出されますよ」 という設定で0.1と書いています そしてtarget のところには SELF そして selector のところに @selector と書いて この@selector の ここに タイマーが起動される度に 呼び出されるメソッドの名前を書いてやります ここは何でもいいんですけども どんな名前でもいいんですけど tickTime という風に書いて 時間を経過させなさいということを示す そういう名前のメソッドを 用意したいと思います では userInfo のところはNIL と入力して 特にありませんよということを指定して repeats のところは YES か NO かで このタイマーを繰り返すかどうかを 指定できるのですが ここではYES を入力して タイマーを繰り返し 呼び出すようにしたいと思います ではtickTime というメソッドを この下の方で実装しましょう tickTime というメソッドは これが呼び出される度に ゲームの実行がどんどん進行していく ということになりますので このtickTime が 呼び出されるようにするために 実装するために このための変数を用意しておきます 上のところにさっきタイマーを 追加しましたけど この上あたりに float 型を使って gameTime 残り何秒かということを 小数点の数を使って 保存しておきたいと思います このgameTime ですけれども makeProblem する度に gameTime = 1.5 という風に書いて 「残り時間があと1.5秒ありますよ」 という風にしておきます これをデバッグする時には 1.5ではなくて2.0とか 4.0とか5.0とか ちょっと大きめの数で 指定することをお勧めしたいなと思います 今回はちょっと大きめに 3.0ぐらいにしておきましょう 「3秒以内に答えなさい」という風に したいと思います ではtickTime の方で行う作業ですけれども このtickTime は0.1秒ごとに呼ばれますので gameTime も - = 0.1 という風に書いてやって 0.1秒ごと減らしていきます もしもgameTimeが― 0.0以下になった時 これがゲームオーバーの瞬間ですから この時にgameOver が 呼び出されるようにします ゲームオーバーはすでに下のところに gameOver とそのままのメソッドが 用意されていますから この時には gameOver が 呼び出されるようにします あとはちょこちょこと細かい調整なんですが このgameTimeが-0.1される度に プログレスビューの進行具合を 変えていく必要がありますので self.progressView に対して setProgress このsetProgressというのを使うことで 現在の時間を表示することができます フルの時が3.0ですから このgameTime を3.0で 割ってやることによって 0.0から1.0までの値で残り時間を 表示できるようになります そしてセミコロンを入力して これでプログレスビューに現在の時間を 設定できるようになりました あともう1個忘れちゃいけないのが このゲームを開始する時 makeProblem で 新しい問題を作った時にも self.progressView に対して setProgress で ここでは1.0を指定して 「進行が100%の状態から始まりますよ」 という風にしておく必要があります それから makeProblem する度に 新しいタイマーを繰り返し こうやって作っていますから タイマーがすでに用意されている時に そのタイマーを invalidate 「もう使いませんよ」という風に 指定しておく必要があります 「タイマーは使いませんよ」というのは ゲームオーバーになった時にも やっぱり同じように指定しておく 必要がありますので ゲームオーバーになった瞬間にもタイマーが 無効化しておいてくださいということで 「invalidate しますよ」ということを 書いてやる必要があります ではこのようにしてタイマーの実装が 完了しましたので アプリケーションを実行して 動作を確認しておきたいと思います では実行ボタンを押します そうすると 3秒間このように ゲームが制限時間がついて 実行されるようになりました このように何もしなければ ゲームオーバーが呼び出されますので ‟ゲームオーバー”と表示されて 「終わりますよ」という形になります このレッスンではタイマーを使って 回答するまでの制限時間を 設ける方法について説明しました

はじめてのiOSアプリ開発

このコースではXcodeを使ったiOS用アプリの開発に必要な基礎知識を学びます。Xcodeの基本的な使い方から本格的なゲーム制作のためのSprite Kitを用いた制作方法まで、カウントダウンタイマーやスピード暗算ゲームなど3つの簡単なiOS用アプリを作りながら説明します。このコースを見れば、本当に必要なアプリ開発の知識を着実に身に付けられるでしょう!

5時間55分 (52 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 2,990
発売日:2015年06月04日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。