大西Scratch日記

Scratch初心者です。勉強するためにブログを始めてみます

キーアップイベントで波動砲を打つ

キーアップ(keyup)イベント、JS書いててもよく使いますが、Scratch でどうやればいいんでしょう。

f:id:onishi:20170513174049j:plain:w200

このように「イベント」と「調査」に「キーが押された」ことを取得することはできるのですが、「キーが離された」を取得はできないように思えます。

そんなことはなく実は簡単。否定の演算ブロックを使えばいいだけです。

f:id:onishi:20170513174315j:plain:w250

それでは、これを利用してR-TYPE波動砲のように(例えが古い)、「キーを押されている」間は力を溜めて、「キーが離されたら」発射する例を作ってみましょう。


スペースキーを押している間、力を溜めて、離すと発射します。それだけのサンプルです。

自機のスクリプト

f:id:onishi:20170513174658j:plain:w300
ループとキーダウン・キーアップを組み合わせています。
自機と弾との間は3種類のメッセージでやりとりしています。

  1. 溜め始める
  2. 溜めている間。弾が大きくなる
  3. 発射

弾のスクリプト

f:id:onishi:20170513174912j:plain:w200

はい、簡単ですね。Scratchは不自由なようで、制御と演算のブロックの組み合わせで意外といろんなことができます。組み合わせを考えるのもパズルのようで面白いですね。enjoy!!

scratch.mit.edu