ch_paint
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
ch_paint [2018/01/03 23:30] – kanemune | ch_paint [2020/07/11 05:29] (現在) – [タートルを操作する] klab | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | # ペイントソフトを作ろう | ||
+ | |||
+ | このActivityでは、ボタンで絵を描くペイントソフトを作る。 | ||
+ | |||
+ | |||
+ | ## 作成するペイントソフト | ||
+ | |||
+ | 次の図は製作例である。画面にはタートルが表示されており、左側にはボタンが並んでいる。ボタンを押すと、次のような操作を行える。 | ||
+ | * タートルの操作。この例では、「あるく」、「もどる」、「左回転」、「右回転」、「線あり」、「線なし」が用意されている。 | ||
+ | * 描いた線で図形を作る。この例では「図形を作る」が用意されている。 | ||
+ | * 図形の描画。この例では、「星」、「四角」、「三角」、「六角」が用意されている。 | ||
+ | |||
+ | このようなペイントソフトを、少しずつ作っていこう。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | ## ボタンの生成 | ||
+ | |||
+ | 今まで作ってきたプログラムは、いちど実行ボタンを押して実行したら、プログラムが動くのを黙って見ているしかなかった。また、コンピュータは高速に動くので、描いている途中は見えずに、一瞬で結果の状態が表示されてしまっていた。 | ||
+ | |||
+ | コンピュータの画面で動く多くのアプリケーションソフトのように、ボタンなどの**GUI部品**(プログラムの画面に置いて対話的に使うグラフィカルな部品)を使えると便利である。そこでここでは、**ボタン**オブジェクトを使い、マウスでプログラムの動きを制御する方法を学ぶ。 | ||
+ | |||
+ | タートルなどのオブジェクトと同様に、画面にボタンオブジェクトを生成することができる。ボタンに表示する文字は、**作る**のパラメータとして与える。次のプログラムは、「かめた」というタートルオブジェクトと、「前進ボタン」というボタンオブジェクトを画面に作っている。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | 実行すると、無事に画面にボタンが表示された。しかし、押しても何も起きないだろう。これは、押したときに何をしたらよいかという動作をボタンに指示していないためである。 | ||
+ | |||
+ | |||
+ | |||
+ | ## 動作の定義 | ||
+ | |||
+ | ボタンオブジェクトに**動作**という名前の命令(**メソッド**)を定義することで、ボタンを押したときの動作を定義できる。次のプログラムは、「前進ボタン」に「動作」を定義している。実行すると、ボタンを押すたびにかめたが100歩ずつ前進する。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | 以上が、ボタンの基本的な使い方である。表に、ボタンの命令の一部をまとめておく。 | ||
+ | |||
+ | **ボタンの命令(一部)** | ||
+ | |||
+ | ^ 命令^ 用途^ 使用例^ | ||
+ | |**移動する**| 移動する|前進ボタン!100 0 移動する。| | ||
+ | |**位置**| 特定の位置に動く|前進ボタン!100 100 位置。| | ||
+ | |**大きさ**| ボタンの大きさを指定する|前進ボタン!150 100 大きさ。| | ||
+ | |**塗る**| ボタンの色を指定する|前進ボタン!(緑)塗る。| | ||
+ | |**文字色**| 文字の色を指定する|前進ボタン!(青)文字色。| | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ## タートルを操作する | ||
+ | |||
+ | ここからは、ペイントソフトを作っていく。最初に、主役となるタートルを作ろう。ここでは「かめた」という名前にした。次に、画面の左上に2つのボタンを作る。「あるく」ボタンを押すと、かめたは前進する。「もどる」ボタンを押すと、かめたは後退する。先頭の行は、コメントである。「/ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | < | ||
+ | // タートルオブジェクトを操作する。 | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | 続いて、タートルを回転するボタンを作る。「左回転」 ボタンを押すと、かめたは左に回転する。「右回転」 ボタンを押すと、かめたは右に回転する。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | 続いて、タートルが動いたときに線を描くかどうかを指定するボタンを作る。「線あり」 ボタンを押すと、かめたは動いたときに線を描くようになる。「線なし」 ボタンを押すと、かめたは動いたときに線を描かないようになる。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ## 図形を描く | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | 続いて、図形を描くボタンを作る。「星」ボタンを押すと、かめたが星を描き、図形オブジェクトにする。同様に、「四角」、「三角」、「六角」ボタンを用意して、三角形、四角形、六角形の図形オブジェクトをボタンひとつで作れるようにする。 | ||
+ | |||
+ | |||
+ | < | ||
+ | // 図形を描き図形オブジェクトにする | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ## 図形に色を塗る | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 続いて、図形に色を塗るボタンを作る。ボタンは 「青、黄色、紫、白、緑、赤、黒、水色」の8色分を作り、4個ずつ2列に並べている。それぞれの色のボタンを押すと、描いた図形に色が塗られる。 | ||
+ | |||
+ | |||
+ | < | ||
+ | // 図形オブジェクトに色を塗る | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||