ScratchText 003 変数の表示
はじめに
今回は変数を取り上げます。変数は数学的にはて決まった値である定数と対比して、一定の値ではなく、変わりうる値として使われます。コンピュータでは操作ということから、数値(データ)が入る入れ物として説明されることが多いようですね。
今回は次のサンプル作品を取り上げます。図をクリックすると作品へ飛びます。
作品は四辺形の4隅の座標値を設定すると、四辺形が描けるという問題です。変数が数学的な意味での座標値を使って、ペンで描くという座標値とペンという典型的な問題かと思います。
スクリプト
ここで用いたスクリプトは次のようになっています。
四辺形を描く動きを定義ブロックに書きます。4つの点の座標をそれぞれ、(1x,1y)・・・として、
(1x,1y)→(2x,2y)→(3x,3y)→(4x,4y)→(1x,1y)
と動かして四辺形を描きます。
「x座標を1x、y座標を1yにする」という記述は、スプライトを現在位置から座標(1x、1y)に移動するということをしめします。ペンを下ろして、1辺ずつ、次々と描くことで、四辺形が描かれます。
右のスクリプトがこの作品のメインのスクリプトで、緑の旗がクリックされたら、初期化として、ステージに前に書かれてあることを消してきれいにし、ペンの色と太さを設定し、定義ブロックを使って、四辺形を描き続けます。
このままでは、一つの四辺形を描くだけですが、変数の値を変えることで違う四辺形を描くことができます。一回ずつ、前の四辺形を消して、新しい四辺形を描きます。
変数の表示方法が3種類ありますが、この場合はスライダー付きの変数表示を使っています。
変数の表示方法
変数を作成はブロックパレットのデータ・タブの変数を作るから作ります。チェックを入れることによって、変数の値が表示されます。
この変数の3つの表示方法を示します。
左から順に
- 普通の表示・・・変数名と変数の値が表示されます。
- 大きな表示・・・変数の値だけが大きく表示されます。
- スライダー・・・変数の値をスライダーを使って変更することができます。
1.、2.は表示だけですが、3はスライダーを使って、外部から変数の値を設定できます。また、この変数の最小値と最大値を設定して、変数値の取りうる値の範囲を決めることができます。
作成: 松成 文夫
ScratchText 002 Events
はじめに
Scratchはイベント駆動のプログラミング言語といわれます。ある出来事(イベント)が起きた時にどのような動作をするかを記述して、全体のプログラムを作っていきます。Scratchではキーボードの動き、マウスの動作などが外部入力として使われて、その時どうするかというスクリプトを書きます。内部的なイベント、例えば二つのスプライトがぶっつかったとかの場合、メッセージをだして、イベントが起きたよということを知らせます。
イベント説明のプロジェクトを作ってみました。下記をクリックしてください。
ステージのイベント
とりあえず、背景を3つ準備しました。 1. 背景1:最初から準備されている背景で、この上にタイトルなどを書きます。
2. space :地球上を想定しています。ここがシューティングゲームの主ステージです。
3. moon :ある条件でステージを月面に変えます。
これを実現するスクリプトとして次のようにしました。
図の左側のブロックがイベントに対して使えるブロックです。
最初のイメージに従って、次のようにしています。
1. 背景1: 緑の旗をクリックで背景1です。緑の旗は初期状態の設定です。
2. space :画面をクリックしてスタートとしました。「スタート」のメッセージを出します。緑の旗で初期設定をして、「スタート」メッセージでゲーム開始とする習慣をつけたらいいかと思います。この時、背景を主ステージのspaceにしました。
なお、画面クリックの代わりにスペースキーをクリックするなどもいいでしょうが、スペースキーはほかでもいろいろと使い道がありそうです。
3. moon :音量のイベントを使ってみました。外部の音の音量でゲームに熱中して大きな音になるとゲーム中断のイメージです。背景をmoonにしました。
スプライトのイベント
今回のシューティングゲームでは、弾を発射するところまでで、つぎの3つのスプライトを使っています。
Spaceshipのスクリプトは次のようにしています。
1. 初期設定で緑の旗とスタートメッセージで2種類の設定をしています。
2. 背景が「背景1」、「space」、「moon」でこのスプライトを「消す」、「表示する」の区別をして、さらに表示状態を変えています。
3. 上矢印キーで、弾スプライトのクローンを作っています。Text001では自分自身のクローンを使いましたが、こちらでクローンを作った方がわかりやすくなるかと思います。
4. 右向き、左向き矢印キーで左右に動かします。単純に10ずつ左右に動かすのではなく、キーの特性を考慮して、ちょっとした飾りを付けています。とりあえずはこのまま、使ってください。
以上のばらばらに書かれたイベントに対応するスクリプトが全体として一体として機能するのがイベント駆動といわれるプログラミングの書き方です。
弾のスクリプトは次のようにしています。
注目点は次の二つです。
1. クローンを作るために、最初から「隠す」して、クローンされたとき「表示する」としています。このクローンの使い方はText001と同じです。
2. 「ずっとSpaceshipへ行く」でSpaceshipと一体化しています。
スプライト2は次のようにしています。
これは背景1の時だけ、このタイトルを表示するということですね。
まとめ
イベントブロックの使い方を簡単に見てきました。プログラミングで一番大事なことはステージで大まかのストーリーを準備してから作品を作っていくということのような気がします。
是非、初期設定は習慣づけてください。
記事:松成 文夫
ScratchDay 2018 in Aichi
ScratchDay の企画の大枠が決まり、チラシもできました。
- CoderDojo天白で日頃やっているビスケット、スクラッチの紹介を兼ねて、初心者用にわかりやすい授業を行います。
- 経験者には、親睦をも兼ねて、お題を出してのバトル的な取り組みを行います。作品つくりとともに他所の皆さんとも交流を図ってください。
- 若い技術者を支援する未踏プロジェクトとして開発されたAmazeing!! Makerが先日、公開されました。開発者の坂元りづむさんの指導による展示・実演が行われます。未来のビー玉回路をお楽しみください。 HP : http://amazeingmaker.com
- CoderDojo天白は名古屋市天白区の地域のDojoですが、Scratcherの全国的な集まりにもなってきつつあります。今回も東京からyuki384さんが講師として参加してくれます!
- パソコンをお持ちでない方もセンター設置のパソコンを使うことができます。パソコン・デビューをスクラッチでどうですか!
申し込み先:https://tempaku.connpass.com/event/83029/
では、お待ちしています!
速報:ScratchDay 2018 in Aichiを公開しました!
5月12日(土)ScratchDay
ScratchDay は子どものためのオンライン・コニュニティであるScratchを祝うために人々が集まるグローバル・ネットワークであるとされています。昨年は全世界で1,000以上のイベントが開催されました。今年も230以上のイベントが計画されています(2018年4月6日現在)。
CoderDojo天白でもイベントを行います。
趣旨に沿って、CoderDojo天白でも毎年、ScratchDayイベントを今年も行います。Dojoでいつも行っている初心者から経験者までの学習会およびバトル的作品作成の場を作ります。地域の参加者とともに全国のScratcherの集まる場になればと思います。
下記をクリックして、connpassから申し込みをお願いします。
当日、メンター、ボランティアとして参加される方も歓迎です。みんなで盛り上げてもらえればと思います。詳細は、皆さんの意見で、これから決まっていくと思いますが、とりあえず、現状での計画を公開しておきます。
CoderDojo天白 主宰者 松成 文夫
ScratchText 001 Happy Valentine’s Day!
はじめに
Scratchの午前・午後での授業の最初のテキストとしてクローンを取り上げる。参照したプロジェクトはMITでのScratchの開発者レズニック教授のHVD(Happy Valentine's Day!)である。
※ この図をクリックしてください。Scratchの画面に飛びます。
内容は、マウスの位置に、いろんな大きさのハート形のスプライトが発生してランダムな方向に散っていくというものです。このハート形のスプライトがクローンです。
スクリプト
この例ではスプライトは Heart だけである。そのスクリプトを下に示す。
スクリプト解説
クローン作製の基本的な手順は次のようになります。
- 自分自身のクローンを作る
- 各クローンを移動する
- 各クローンを削除する
注意事項
- 自分自身のクローンを作成する
- 作成するクローンの位置を決める
- 作成するクローンの発生時間を決める
- 自分自身が残るので、隠してからクローンを作る
- 各クローンを移動する
- 隠した状態から表示するに変える
- クローンの性質(色、大きさ、向きなど)を決める
- 動かす
3. クローンを削除する
- 削除するタイミング(回数、物に当たった時など)を決める
- クローンを削除する
応用
クローンを作るスプライトをいろいろと変えてみよう。その時、上の注意事項で述べたことをいろいろと変えてみよう。
- さくらの花びらを散らしてみよう。このままで、スプライトを変えるだけでもリミックスだけど、ちょっと一工夫。一つのスプライトでいろんな花びらが作れるかな?
- 桜の花が春ならば、四季の風景を作ることができるかな?
- 花咲か爺さんはできるかな?
こんなこと
メモと作品への貢献の欄に、英語だけど、これは一部、97293133 の作品に刺激を受けて作ったと書いてある。リミックスさせてもらって有難うではなく、ちょっと刺激を受けて作ってみようといった場合、こういう書き方もあるようだね。応用で挙げたような作品を作ったら、こういう言い方がいいのかもしれない。
このリミックス・ツリーを見てみると面白いよ。僕も一つ作ったけど、ほかの人とはちょっと違うみたいだった。リミックスの取り方が違っているかもしれない。
作成: 松成 文夫
天白子ども祭りに参加しました
日時:2018年2月25日(日)10:00~15:00
場所:名古屋市天白区生涯学習センター IT講習室
春がすぐそこまでやってきている暖かい一日、天白生涯学習センターで天白子ども祭りが開催されました。CoderDojo天白でも、寺島さん、岸本さんの発案で、急遽、出張CoderDojo天白としてプログラミング体験会と名付けて参加しました。
Dojoの出し物は次を用意してくれました。
- ScratchではDojoで作成した忍者の作品をセンター設置のパソコンに設定して、遊んでもらったり、参考にリミックスして自分の作品を作ってもらうことにしました。寺島さん、岸本さんが担当してくれました。
- 電子工作はDojoで作ったクローラーが3~4台並んでみんなに遊んでもらいました。稲見さんが担当してくれました。さらに寺島さんがちびカーといろんなものに配線して触ったもので違う音を出すものを作ってきてくれましたが、面倒を見る人がいませんでした。さらにちびっこ忍者がレゴ・マインドストームを2台使って犬のロボットとその専用操作腕をつないだ本格的なロボットを持ってきてくれました。
- さらに、飛び入りでちびっこメンターがキネクトを使って、人が跳ねたり、歩いてたりするとScratch Catが動いて、金貨をとるといったジャンピング・ゲームを実演してくれました。
結構、Dojoの作品発表会といった趣でした。
祭りの初めの準備状況はこんなものでした
朝、9:00を集合時間としました。岸本さんの一家がにこやかに登場といった感じかな。岸本さんがパソコン設定の間に、暫定ちびっこメンターのKちゃん、S君などでチラシを張ってもらう。二人ともクローラーを持参。クローラーを机の上に並べたり、入り口の掲示板に案内を書いたり、ある意味、楽しい時間。
寺島さんがいろいろと電子工作を持ってきてくれて、並べてくれたり、ポスターも作ってきてくれて張ってくれたりと・・・マスコットボーイも登場で場がにぎやかになる。
五島さんの一家が登場。S君が自慢のレゴのロボットを持参。マインドストームの犬のロボットとのことだけど、すぐにはわからなかった。操作腕もあって本格的。キネクトを設置するには部屋が狭いので苦労。表示をスクリーンにするとのことで、急遽、設定したり、コードを家に取りに帰ったり、ちょっとしたバタバタ・・・
家に帰って、荷物を持って、センターに戻ったら、ちょうど、稲見さんが駐車場当番に出てくれていた。軽く、挨拶をして、ぼつぼつ、はじまりの時間です。
さあ、祭りが始まります・・・午前の部
10時過ぎに太鼓がなって祭りの始まりです。予想に反して多くの人が参加しているようです。ぞろぞろとIT室の前を人が通ります。呼び込みの時間ですが、ちびっこメンターはちょっと呼び込みを躊躇しています。レゴ・ロボットのS君も躊躇しながらPRです。ちびっこが躊躇するなら年寄りの出番です。入った!、入った!と言って呼び込みます。設置パソコンは10台なのですぐに埋まってしまいました。寺島さんが主に見てくれているようです。岸本さんは保護者を捕まえて、会のPRをしてくれているようです。年上のちびっこメンターも含め、ちびっこメンターも説明に加わっていました。
そのうちにパソコンにあぶれた子供たちがクローラーにこわごわ触っています。作成のちびっこメンターが説明していますが、線が外れたり・・・トラブルも発生。ちょうど、稲見さんが駐車場当番から帰って見えて、一安心。外れたものを直して、みんなに触らせていました。みんな、直進、右回り、左回りと自由に動かしていました。見ていて、壊してしまうのではと思いますが、壊れても稲見さんが見てくれるので安心です。
折に触れて、レゴロボットが呼び込みに行きます。また、高級品なのでみんな触るのに躊躇しながらですが触っていきました。
キネクトのジャンピング・ゲームはプロジェクターに映すか、パソコンに映すか、準備に大わらわです。そのうちに一人、二人と参加しては大きな歓声が響いていました。珍しいものをありがとう。
そんなこんなで熱い雰囲気の中、参加者が次から次へと入ってきました。長い時間やる子供には適度に引取りを願ながら交代していきました。
12時になって、そのまま、延長も考えられたのですが、一応、午前の部終了ということで昼食時間としました。
昼からもにぎわいます・・・午後の部
昼休み中も外からのぞき込む子供たちが多かったです。早々に昼食を済ませ、12時45分にドアを開けました。もう、呼び込みも不要で続々と入ってきた。
昼からも熱い雰囲気のなかで行いましたが、あまり、作品といった感じでは目立ちませんでしたが、順次、用意されたスタジオの枠を離れて、高級なゲームプログラムに熱中している子供たちも増えてきたようだった。ちびっこメンターたちが教えてあげたのかな。。。
クローラーはやはり小さい子に人気です。数人で床に座り込んで遊んでいました。壊すことを心配することもなく、赤外線センサーで遠隔操作を楽しんでいました。
レゴもだいぶみんな、特にちびっこメンターの間で人気になってきました。犬のロボットを大きい口を開閉しますが、差し入れの飴をその口に投げ込んだり、放り投げて受け止めるかといったことをしながら、きゃあきゃあと言って遊んでいました。
ジャンピングゲームは狭い場所に追いやられて、ちょっと見に行けませんでしたが、ぼつぼつと参加者もいるようで家族的に遊んでいました。
飴投げ開始の放送があり、子供たちは外へ出ていきました。
これで、今回のお祭り行事はおしまいです。
謝辞
メンターの寺島さん、岸本さん、稲見さん、ボランティアの五島さん、ちびっこメンターのSちゃん、O.M君、K.J君、岸本さんのお子さんメンターのKちゃん、S君、寺島さんのUちゃん、Aちゃん、五島さんのSくん、稲見さんのお子さんも見えていたけど、いつの間にか帰っていったみたいだった。一日、ありがとう。こうやって見ると学校の学芸会が済んだといった感じで、楽しかったですね。
出張も気分が変わって楽しいので、また、どこかでやりたいですね。
記録: 松成文夫・・・若干のフィクションは松成の観察不足でご容赦ください。
天白子供祭り
2月25日(日)に天白子ども祭りが開催されます。
CoderDojo天白では「出張CoderDojo天白」として、簡単な初心者用ガイダンスと、まずはやってみることということで参加者にセンター設置のパソコンに触ってもらいますが、とりあえず、次の要領で行います。
午前 担当メンター:岸本メンターほかCoderDojo天白メンター
午後 担当メンター:寺島メンターほかCoderDojo天白メンター
内容
- Scratchの簡単な初心者用ガイダンス
- Scratch自由製作
とりあえずは以上です。
ボランティア募集
子ども祭り参加に際しては、いくらかの当番などの雑務が発生します。今のとこ、メンターで賄えそうですが、どなたかボランティアお願いできれば、よろしくお願いします。
ちびっこメンター募集
当日、初心者の面倒を見てくれるDojoの忍者を募集しています。意外と自分がわかっていないことが見つかったり、また、教えたりすることでボランティアとしての社会勉強にもなりますよ。是非、参加して下さい。
参加申し込み
は下記からお願いします。