0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Scratchで体験するゲームプログラミングのための物理シミュレーション (中高生向け)

Last updated at Posted at 2017-05-09
1 / 10

この記事のURL: https://goo.gl/skkmra


この記事でやること

  • ゲームにリアルな動きを!
    • ゲームの中では、キャラクターが飛んだり落ちたりする。
    • こうした「動き」をリアルに再現したい。
  • では、どうすればいい?
    • モノの動きは物理法則に従う。
    • コンピュータの中で物理法則を**シミュレート(真似)**しよう!
    • これが「物理シミュレーション」。

カンタンな物理シミュレーションを覚えて、リアルなゲームを作ろう!


第1回: キャラクターを加速させてみる


やってみよう(1)

まず、Scratchの復習を兼ねて、キャラクターが一定のスピードで動くだけのプログラムを作ってみよう。具体的には、次のような形でプログラムを作ってみよう。

  1. 最初にキャラクターの向きを45度にする。
  2. 0.1秒ごとに、10歩ずつ動かし、もし端についたら跳ね返る。

スクリーンショット 2017-05-09 10.25.54.png

ヒント:

  • 「動き」の「〜度に向ける」や「〜歩動かす」を使う。
  • 「制御」の「ずっと」(くり返し)を使う。

「位置」だけでなく「速さ」を考えよう

  • モノの動き方をリアルに再現するには、未来の動き方を予想できないとダメ。
  • そのためには、「速さ」を考えることが大事。
    • モノの「位置」だけでは、ある瞬間の後どのように動くかが分からない。
    • 「速さ」が分かっていれば、ある瞬間の後どのように動くかが予想できる。
  • 身近な例
    • モノが落ちるときの動き(一定のスピード=重力加速度で速くなる)
    • 自動車の動き(アクセルで速く、ブレーキで遅くなる)

リアルな動きを再現するには「速さ」が必要!


やってみよう(2)

上のプログラムを改良して、キャラクターが動く速さが時間の経過とともに変化するプログラムを作ってみよう。具体的には、以下のように作ってみよう。

  • 「速さ」という名前の変数を用意する。
  • 0.1秒ごとに、「速さ」の分だけ進むようにする。
  • 0.1秒ごとに、「速さ」を1ずつ増やす。

スクリーンショット 2017-05-09 10.27.02.png

ヒント:

  • 「データ」の「変数を作る」から変数を作れる。
  • 「速さ」の値を最初に0にリセットしておこう。

チャレンジ(1)

上のプログラムを改良して、キャラクターが一つだけでなく、1秒ごとに1つずつ増えるプログラムを作ってみよう。具体的には、次のように作ってみよう。

  • 1秒ごとにキャラクターをクローンする。
  • クローンされたキャラクターの位置と向きをランダムに決める。

スクリーンショット 2017-05-09 10.29.49.png

ヒント:

  • 「制御」の「〜のクローンを作る」を使う。
  • クローン元は隠しておき、クローンされたときに表示されるようにする。

チャレンジ(2)

上のプログラムを改良して、キャラクターをクリックすると消えるようにしてみよう。


チャレンジ(3)

上のプログラムを改良して、今画面の上に表示されているキャラクターの数を表す変数を作り、もしキャラクターの数が10を超えたら、ゲームオーバーとするプログラムを作ってみよう。また、キャラクターの向きが少しずつランダムに変わるようにしてみましょう。


第1回の解答(例)

やってみよう(1)

やってみよう(2)

スクリーンショット 2017-05-09 10.19.41.png

チャレンジ(1), (2)

スクリーンショット 2017-05-10 11.45.30.png

チャレンジ(3)

キャラクターのスプライトに加え、「Game Over」と表示するためのスプライトを作りましょう。

スクリーンショット 2017-05-09 10.40.57.png

キャラクターのスプライトの方のスクリプトは、次のように作ります。

スクリーンショット 2017-05-10 12.36.18.png
スクリーンショット 2017-05-10 12.36.26.png

「Game Over」のスプライトの方のスクリプトは、次のように作ります。

スクリーンショット 2017-05-09 10.40.43.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?