Scratchでシューティングゲームを作ろう!(3)

弾を撃つ!

こんにちは、おおやけハジメです。

三回目は敵を倒すための弾を発射出来るようにしました。

シューティングゲームを作ろう(3) Scratchプロジェクト

scratch.mit.edu

スプライト新規作成

まず最初に弾のスプライトを新規作成します。

f:id:digitarhythm:20161227182026p:plain

キャラの絵はなんでもいいのですが、今回はBallを使いました。

変数作成

次に、ボールを制御するための変数「tama」を作成します。「データ」の「変数を作る」をクリックするとダイアログが出ます。

f:id:digitarhythm:20161227182248p:plain

すべてのスプライト用」で「tama」という変数を作成します。

f:id:digitarhythm:20161227182309p:plain

この変数は、発射できる弾の数を制御するために使用します。

弾の発射プログラム

次にSprite1(猫)のプログラムを、弾を撃てるように変更します。

f:id:digitarhythm:20161227183418p:plain

前回からの変更点は、プログラム開始時に変数「tama」を「0」にしています。

さらに次の処理が追加されています。

f:id:digitarhythm:20161227183145p:plain

この処理は「スペースバーが押された時に変数tamaが1より小さかったら(0だったら)tamaを1増やし、Ballスプライトをクローンしろ」という処理になります。この条件が満たされた時、変数tamaが「1」になるため、次からはスペースバーを押してもクローンされなくなります。

Ballスプライトのプログラム

次に「Ball」スプライトにプログラムを作ります。

f:id:digitarhythm:20161227182816p:plain

このスプライトもクローンで使用するので、プログラム開始と同時に隠します。スプライトのサイズも20%に縮少します。

そして、クローンされた時には画面に表示し、座標をSprite1(猫)と同じにします。これによって猫から弾が発射されたように見えます。

その後は無限ループでY座標を増やしていきます。これで弾が上に飛んで行くように見えます。そして、画面の一番上に行ったところで自分自身を削除し、先ほど作った変数「tama」を「1」減らします。

これでtamaが「0」になるので、また弾が発射出来るようになります。

ここで、鋭い方は気づいていると思いますが、先ほどのスペースバーを押した時の「tama < 1」の「1」が発射出来る弾の数になります。この「1」を変えてみるとBallスプライトはひとつしか作っていなくとも、複数の弾が発射出来ることが分かるでしょう。

f:id:digitarhythm:20161227185509p:plain

第5回 CoderDojo 調布を開催します

1/22(日)に「第5回 CoderDojo 調布」を開催します(次回は日曜日の開催です)。

開催概要

  • 日時:2017/01/22(日) 9:30 - 11:45
  • 場所:調布市 市民プラザ あくろす(京王線国領駅北口前)
    • 会議室1 (2階男女共同参画推進センター内)
  • 定員:12名
  • 費用:無料

※前回と部屋が異なりますのでご注意ください。

※開始30分程度でメンター紹介に加えプログラミングやツール紹介をやります(詳細は過去開催の様子をご覧ください)

※最後に30分程度、当日やったことを発表してもらいます。

参加申し込み

下記ページより、参加の申し込みを行ってください。いくつかの入力項目および、ご承諾いただく事項があります。 当日はノートパソコンをお持ちください。

coderdojo-chofu.doorkeeper.jp

みなさまの参加をお待ちしています!

メンターからのプログラミングやツール紹介予定

  • おおやけさん:Scratchでシューティングゲームをつくろう!・その3
  • なかむらさん:Dashでロボットプログラミング

第4回 CoderDojo 調布を開催しました

12月24日(土)に第4回 CoderDojo 調布を開催しました。

coderdojo-chofu.doorkeeper.jp

クリスマスイブの午前中にも関わらず、たくさんの方にご参加いただきました。

クリスマスということでメンターからのプレゼントもありました。 f:id:kaorun55:20170104230253p:plain

当日の様子

チャンピオンとメンターの自己紹介

まずはチャンピオン(主宰)の石原さんの挨拶から。 f:id:kaorun55:20161224094407j:plain

続いてメンターの自己紹介兼こども達に紹介したいトピックの紹介です。

猪股さんからはArduinoの紹介です。Dojoにも2台のArduinoが常備されているので、借りて使うこともできます。 f:id:kaorun55:20161224094852j:plain

私、中村からはlittleBitsの紹介です。Arduinoよりももう少し簡単に電子工作を楽しむことができます。 f:id:kaorun55:20161224095117j:plain

おおやけさんからは「Scratchでシューティングゲームをつくろう!」の2回目(全10回)です。過去の連載はこちらから見ることができます。 f:id:kaorun55:20161224095513j:plain

プログラミングタイム

本番のプログラミングタイムです。

参加者のみなさんそれぞれやりたいことを進めます。今回はScratchで参加される子が多かったです。 f:id:kaorun55:20161224101757j:plain

Scratchが初めての子も3人いて、初めて用のコンテンツの「猫逃げ」を一人一人作っていました。 f:id:kaorun55:20161224101847j:plain

後ろの方ではメンターが用意したいろいろなおもちゃで遊ぶ子もいました。気分転換にいいですね。 参加者の親御さんと情報交換ができるのも楽しいです。 f:id:kaorun55:20161224111459j:plain f:id:kaorun55:20161224110741j:plain

発表タイム

最後にみんなでやったことを発表しました。

Scratch島ではイライラ棒(懐かしい!)や f:id:kaorun55:20161224111827j:plain

風船割ゲームなどが発表されました。 f:id:kaorun55:20161224111832j:plain

LuaでMinecraftでの作業を自動化できるMODを使ってプログラミングに挑戦していた子は、自動的に洞窟を掘り進むプログラムを完成させました。 f:id:kaorun55:20161224111857j:plain

初心者島の子も無事にゲームを完成させて発表できました。 f:id:kaorun55:20161224114233j:plain

発表してくれた参加者には「Raspberry Piではじめるどきどきプログラミング」の共著者でもある石原さんからわくプロシリーズのシール(レアです!)が皆さんに配られニコニコです。 f:id:kaorun55:20161224114557j:plain

ふりかえり

今回は、Scratchで参加された子が多かったですが、みんな全く違うものが出来上がりました。子どもの想像力はすごいですね。

おまけ

f:id:jishiha:20170104131910p:plain

メンターの皆様、おつかれさま、ということで忘年会をおこないました。全員写っている写真がなかったのですが、そこは何でもできる調布のメンター陣。。おおやけさんが合成していかにも全員写っているような一枚になっています。

おまけ2

f:id:allymukai:20170106232202g:plain:w300

LEDが光るクリスマスツリーのプレゼント。当日撮り忘れたので製作中の写真です。

今回のメンターのみなさん

猪股直規さん、おおやけハジメさん、近岡真由美さん、中村薫さん、向井アリー有里子さん、大田一希さん、塩谷正幹さん

見学 落合さん(スポーツシッター・ジャパン)、小野さん(ICU)、森さん(CoderDojo 藤沢メンター)、佐竹さん

次回開催案内

次回は1月22日(日) 9:30~11:45を予定しています。

募集サイトが公開されています。CoderDojo 調布のDoorkeeperページから登録してください。

CoderDojo 調布 | Doorkeeper

By 中村薫さん

Photo By 向井アリー有里子さん

CoderDojo 調布 会計報告を更新しました(2016/12/27)

第4回 CoderDojo 調布を無事終え、会計報告を更新しました。

一部の机の島がコンセントから遠く、タップを十分に伸ばせないことが度々あったので、電源延長ケーブル x 2 を購入しました。

CoderDojo 調布を継続的に開催できているのは皆様のご支援のおかげです。本当にありがとうございます。

By 石原淳也(代表)

参考

【Google Spreadsheet】ブログに指定した範囲の表だけを貼り付けるやり方 - MIN

Scratchでシューティングゲームを作ろう!(2)

敵キャラクターを動かす

こんにちは、おおやけハジメです。

二回目は敵キャラクターを画面に出し、ランダムに動かすところを作りました。

シューティングゲームを作ろう(2) Scratchプロジェクト

scratch.mit.edu

プログラムはこんな感じです。

f:id:digitarhythm:20161227114826p:plain

このプログラムのポイントは、このキャラクター「Ladybug2」自体は、プログラム開始と同時に「隠す」で見えなくしているところです。

では、どうやって敵キャラクターを画面に出すのか?

それは「クローン」を使います。クローンを使うと、2つ以上の同じキャラクター(プログラム)を、わざわざコピーして作らなくともプログラムで複製して画面に出すことが出来ます。

今回は、とりあえず敵を一匹だけ出すので、「ステージ」のスクリプトにクローンを作るプログラムを作成します。

f:id:digitarhythm:20161227115547p:plain

これで、プログラム開始時に敵が画面に一匹だけ出てきます。

「Ladybug2のクローンを作る」を2つ、3つにするとその数だけの敵が画面に出てきます。全部の敵が別々の動きをすると思います。

f:id:digitarhythm:20161227115909p:plain

Scratchでシューティングゲームを作ろう!(1)

自分のキャラクターを操作する

こんにちは、おおやけハジメです。

一回目は、自分のキャラクターをキー操作で動かすところを作りました。

シューティングゲームを作ろう(1) Scratchプロジェクト

scratch.mit.edu

プログラムはこれだけです。

f:id:digitarhythm:20161227112937p:plain

ざっくり解説すると、プログラム開始時に猫のサイズを半分にし、画面下中央に位置を設定。その後に無限ループで左右の矢印キーを調べて、押されていたら押されたキーの方向へ猫を移動する…という感じです。

これがScratchの基本ループ処理になります。キー入力はイベントでも受け取れるのですが、イベントでキー入力を取得して処理をすると最初の一回目で一旦止まってしまい、カクカクした動きになってしまいます。ループで処理をすると動きがなめらかになります。