
- GUIベースの環境でプログラミングを始めよう -
Scratchプログラミングの二歩目、自由な動きを付ける
鳥人間 郷田まり子2009/10/7
キーボードやマウスなどによるユーザーの動作に反応してみたり、さらには変数を使用して、プログラミングの自由度を上げていこう
前回「非プログラマのためのプログラミング講座」は、グラフィカルなプログラミング環境「Scratch」をインストールし、プログラミングの第一歩を体験し、さらに、繰り返し処理を行うための制御ブロックを使用してみたところです。
今回は、キーボードやマウスなどによるユーザーの動作に反応してみたり、さらには変数を使用してデータをスマートに扱ったりしながら、プログラミングの自由度を格段に上げていきます。
キーボード・マウス処理でインタラクティブに
ユーザーの入力に対して相応の処理を行うことで、対話的(インタラクティブ)なプログラムを作ることができます。scratch では、「キーが押された」「マウスのボタンが押された」「スプライトがクリックされた」といったイベントに応じた処理を細かく作っていくことができます。
まずはキーボード操作。
![]() |
どのキーが押されたときにどんな処理が行われるかを規定することができます。「スペースキーが押されたとき、10歩動かす」といった具合です。これを使って、
「上向き矢印キーが押されたとき/0度(上)に向ける/20歩動かす」
「下向き矢印キーが押されたとき/180度(下)」に向ける/20歩動かす」
「右向き矢印キーが押されたとき/90度(右)に向ける/20歩動かす」
「左向き矢印キーが押されたとき/−90度(左)に向ける/20歩動かす」
というプログラムを書いてみると……
![]() |
キーボードでキャラクタを操作できるようになりました。上下左右のキーを押してみてください。押した方向にネコを歩かせることができます。
さらに、「スプライト1がクリックされたとき」といったマウス制御ブロックにつなげることで、マウスを使った操作を作ることができます。
例えば、次のように「スプライト1がクリックされたとき→『いてっ』と2秒言う」プログラムを組むと、スプライト(ネコ)をクリックしたときに「いてっ」という吹き出しが表示されるようになります。![]() |
変数を使う
プログラムを書いていくと、目に見えない値を変化させていく必要が出てきます。回数をカウントする、ゲームキャラクターのヒットポイントを管理する、そういったことはすべて「変数」を使って行います。
難しく考える必要はなく、数値の入れ物のようなものと考えればよいでしょう。
変数にはそれぞれ名前を付けられるので、分かりやすい名前を入力します。
「新しい変数を作る」で作成することができます。
![]() |
「すべてのスプライト用」と「このスプライト用」の2種類があります。
「すべてのスプライト用」は、このプロジェクトの全体で使う変数です。
![]() |
変数を作るときのラジオボタンで「このスプライト用」を選ぶと、現在選択中のスプライトの属性としての変数になります。
複数のキャラクターが入り乱れるようなプロジェクトで、「ある特定のキャラクターの体力」「壁の耐久度」といったものを個別に持たせるような場合に使います。
「すべてのスプライト用」を選ぶと、プロジェクト全体で共有できる変数となります。ユーザーの状況、経過時間、スコアなどを管理するのに適しています。
作成した変数は、「変数」タブに一覧が表示されます。変数はいくつでも作ることができます。
![]() |
1-2 | ![]() |
INDEX | ||
マウスだけでもプログラミングできる!(2) 非プログラマのためのプログラミング講座 |
||
![]() |
Page1 キーボード・マウス処理でインタラクティブに 変数を使う |
|
Page2 変数の変化と条件文 制御ブロックのいろいろ スプライト同士の相互作用 条件の組み合わせ 次回予告 |
[an error occurred while processing this directive]
![]() |
「デザインハック」コーナーへ |
- GASで棒、円、折れ線など各種グラフを作成、変更、削除するための基本 (2017/7/12)
資料を作る際に、「グラフ」は必要不可欠な存在だ。今回は、「グラフの新規作成」「グラフの変更」「グラフの削除」について解説する - GET/POSTでフォームから送信された値をPHPで受け取る「定義済みの変数」【更新】 (2017/7/10)
HTMLのフォーム機能についておさらいし、get/postメソッドなどの内容を連想配列で格納するPHPの「定義済みの変数」の中身や、フォーム送信値の取り扱いにおける注意点について解説します【PHP 7.1含め2017年の情報に合うように更新】 - PHPのfor文&ループ脱出のbreak/スキップのcontinue【更新】 (2017/6/26)
素数判定のロジックからbreak文やcontinue文の利点と使い方を解説。for文を使ったループ処理の基本とwhile文との違い、無限ループなども併せて紹介します【PHP 7.1含め2017年の情報に合うように更新】 - Spreadsheetデータの選択、削除、挿入、コピー、移動、ソート (2017/6/12)
Spreadsheetデータの選択、挿入、削除、コピー、移動、ソートに使うメソッドの使い方などを解説する
![]() |
|
|
|
![]() |