2863
コメント:
|
4140
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 12: | 行 12: |
. {{attachment:catch.png}} | . {{attachment:crane21.png}} |
行 14: | 行 14: |
1. Aボタンを押す | |
行 20: | 行 21: |
1. クレーンが右に動く 1. 右端についた |
1. クレーンが左に動く 1. 左端についた |
行 31: | 行 32: |
「右に動く」が2箇所ありますが、 それぞれ別の状態と考え、別のスクリプトにするほうが考えやすい。 |
. スクリプト1~4はどれか1つが'''チクタク'''で動作すると考えます。 . ボタンが押されたときは、対応するスクリプトを'''1回'''実行します。 |
行 41: | 行 41: |
Bボタンが押されたときは、スクリプト1を停止し、スクリプト2をスタートすればよい。 . {{attachment:crane10.png}} |
|
行 47: | 行 45: |
Aボタンが押されたときは、スクリプト1をスタートすればよい。 Bボタンが押されたときは、スクリプト1を停止し、スクリプト2をスタートすればよい。 . {{attachment:crane10.png}} |
|
行 49: | 行 53: |
Aボタンが押されたときの処理を加えれば、とりあえず動作する。 | 通常、Aボタンが押されるのは停止状態のときである。 クレーンが動き始める前に、 初期位置に移動するなどの処理が必要なら スクリプト1をスタートするまえに行う。 したがって状態図はこのようになる。 |
行 51: | 行 61: |
Aボタンが押されたときに必要な処理 . クレーンを初期位置に移動する . スクリプト1をスタートする |
|
行 56: | 行 63: |
上の状態図で考えられていない動作。(別のシナリオ) | 上の状態図で考えられていない場面を考える。(別のシナリオ) |
行 58: | 行 65: |
次の場合の処理が記述されていません。 | 例えば、次の場合の処理が記述されていません。 |
行 61: | 行 68: |
* スクリプト2,3,4が動いているときにBボタンが押された。 | |
行 63: | 行 69: |
. {{attachment:crane04.png}} | スクリプト1が動作しているときにBボタンが押されないままだと、 クレーンが右端を通り過ぎて画面から消えてしまいます。 . 右端に着いたら左に進む、とすれば状態図はこのようになります。 . {{attachment:crane22.png}} . スクリプト1に処理を追加することで修正できます。 停止状態でないときにAボタンが押された場合、 次の処理を行えば最初から行われるようにできる。 . スクリプト1~4を停止する。 . クレーンを初期位置に戻す。 . スクリプト1をスタートする。 他にも動作がおかしな点があるかもしれません。 . 発見するにはシナリオを . 動作を検討するには状態図を 使うとよい。 |
行 66: | 行 88: |
ぬいぐるみの状態は次の3つが考えられます。 . 止まっている。 . クレーンでつかまれている。 . クレーンから開放されて落ちている。 状態図にするとこのようになります。 |
|
行 67: | 行 94: |
個々の状態についてスクリプトを考えてみます。 |
クレーンゲーム
ゲーム作りを通してプログラム作成の考え方を学びます。(オブジェクト指向)
ゲーム内容
Aボタンを押すとクレーンが動き始め、Bボタンを押すとクレーンが下がり、うまくぬいぐるみをつかんだら運ぶことができます。
クレーンの動きを考える
うまく操作したときのクレーンの動きを考えます。
順に箇条書きにするとこのようになります。(シナリオ)
- Aボタンを押す
- クレーンが右に動く
- Bボタンを押す
- クレーンが下に動く
- 下端についた
- クレーンが上に動く
- 上端についた
- クレーンが左に動く
- 左端についた
- 停止
図に書くとこのようになります。(状態図)
個々の状態に対応するスクリプトに分け、 一度に1つのスクリプトがチクタクで動作するように考えると分かりやすい。
青の点線で囲んだ範囲を1つのスクリプトとして作成します。
スクリプト1~4はどれか1つがチクタクで動作すると考えます。
ボタンが押されたときは、対応するスクリプトを1回実行します。
スクリプト1はこのように書けます。 クレーンの絵の向きを変えずに動かす方法は2つあります。
スクリプト2は下方向の移動で、下端についたときの処理を テストタイルを使って書きます。
スクリプト3、スクリプト4も同様に書けます。
Aボタンが押されたときは、スクリプト1をスタートすればよい。
Bボタンが押されたときは、スクリプト1を停止し、スクリプト2をスタートすればよい。
全体の動作
通常、Aボタンが押されるのは停止状態のときである。
クレーンが動き始める前に、 初期位置に移動するなどの処理が必要なら スクリプト1をスタートするまえに行う。
したがって状態図はこのようになる。
動作詳細
上の状態図で考えられていない場面を考える。(別のシナリオ)
例えば、次の場合の処理が記述されていません。
- スクリプト1が動作しているときにBボタンが押されなかった。
- 停止状態でないときにAボタンが押された。
スクリプト1が動作しているときにBボタンが押されないままだと、 クレーンが右端を通り過ぎて画面から消えてしまいます。
停止状態でないときにAボタンが押された場合、 次の処理を行えば最初から行われるようにできる。
- スクリプト1~4を停止する。
- クレーンを初期位置に戻す。
- スクリプト1をスタートする。
他にも動作がおかしな点があるかもしれません。
- 発見するにはシナリオを
- 動作を検討するには状態図を
使うとよい。
ぬいぐるみの動作
ぬいぐるみの状態は次の3つが考えられます。
- 止まっている。
- クレーンでつかまれている。
- クレーンから開放されて落ちている。
状態図にするとこのようになります。
個々の状態についてスクリプトを考えてみます。