このページの本文へ

アップルの無償プログラミング学習ツール「Swiftプログラミング」でいっしょに遊ぼう 第4回

アップルの無償プログラミング学習ツール「Swift Playgrounds」アクションゲーム作り(準備編)

2020年09月27日 09時00分更新

文● 柴田文彦 編集●飯島恵里子/ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

ステップ2:1個のボールを穴の中で一定速度で上下させる

 このステップでは、最初のステップで配置した要素のうち、もぐらに見立てたボールを上下に一定速度で動かすアニメーションを加えます。一定速度とはいっても、上に動いて穴から抜け出しそうになると反転して下に向かい、穴の底に届くと、そこでまた反転して上に向かうようにして、ボールの動く範囲を制限します。まずこのステップを実現するための手順全体を確認しておきましょう。

・プログラムの先頭にFoundationのインポートを加える
・タイマーを設定して、ボールのy座標を変化させる
・ボールが下端に届いたら、ボールの速度をプラスにする
・ボールが上端に届いたら、ボールの速度をマイナスにする
・ここまでのプログラムを動かして動作を確認する

 ここからは、iPadOSやmacOSが備える基礎的な機能のタイマーを使って、一定時間ごとにプログラムが動作するように設定し、アニメーションを構成していきます。以前にも述べたように、そのためにはFoundationというフレームワークをインポートする必要があります。その1行を先頭に加えましょう。ついでにボールの速度を表すmVelという変数を宣言しておきます。これはタイマーによる一定時間ごとの処理の中で、値を変化させたり調べたりするのですが、タイマーによる動作に入る前に、その変数を既知のものとしておく必要があるのです。

 以上の準備ができたら、あとはタイマーの部分を書き加えるだけです。タイマーの書き方そのものについては前回に説明したので、ここでは繰り返しません。このプログラムでは、インターバルが0.05秒なので、1/20秒ごとに1回だけin以下のプログラムを実行することになります。

 その中では、もぐらに見立てたボールy座標の値を調べます。それが0.0以下だった場合、ボールは穴の底に達したと見て、ボールの速度mVelの値を、正の値0.3に設定します。ボールのy座標が6.5以上だった場合には、ボールは上限の高さに達したとみなして、mVelの値をマイナスの-0.3に設定します。

 このような動作を繰り返せば、ボールは穴の中で一定速度で上下動するように見えるはずです。実際に動かして試してみましょう。

カテゴリートップへ

この連載の記事

ASCII.jp RSS2.0 配信中