スクラッチに挑戦している皆さん、どうも!スクラッチコーチです。
TurboWarpブロックは数あるTurboWarp拡張機能の中でも比較的シンプルな拡張機能だよ。
数も少ないからTurboWarp拡張機能に慣れるのにちょうどいいかも。
特に記述がない限り、TurboWarpの拡張機能を使った作品はScratchで共有できなくなるから注意。
拡張機能をエディターに表示する方法
まずは拡張機能をエディターに表示する方法を紹介する。知ってる人はここを飛ばして読んでOK。
ターボワープエディターを開く
まずTurboWarpエディターを開く。これはScratchエディターとは違うから、場所がわからない人はここからオープンしてみて。
基本的にScratchエディターと似た感じのエディタが開くと思う。TurboWarpはScratchを改造したMODだから、エディターもそっくりなんだ。
拡張機能の一覧を開く
エディターの左下にこんなマークがあると思う。
まぁ赤いだけでScratchエディターと同じだね。
これをクリックすると一覧が開く。
TurboWarp拡張機能を見つける
一覧にはまずScratchの拡張機能が表示されて、少し下にスクロールしないとTurboWarpの拡張機能は見つからない。そこで、上段にある「TurboWarp」というボタンを押してみよう。
そうするとTurboWarp拡張機能だけが表示されると思う!こんなふうに↓
うおおお!見たこともない新鮮な拡張機能があるぞー!知的好奇心がウズウズするぞぉ!
1つ1つシリーズ化してみていきたいと思う。今回の記事では、こちら!
これをクリックしてエディターに拡張機能を追加してみよう!
追加されたら↓こんな感じに見えるはず。
準備OK!
僕はエディターをダークモードで使ってるから黒い背景だけど、デフォルトだと白い背景かも。エディターの左上にある「設定」から変えられるよ。
拡張機能の紹介
いまのところ全部で4ブロックだけ。
is compiled?
読み | 意味 | 解説 |
is compiled? | プロジェクトがコンパイルされているかどうか調べる | Scratchで実行しているとコンパイルされてないからFALSE。 TurboWarpなどで実行しているとコンパイルされているからTRUE。 |
このブロックを使っててもScratchで作品を共有できるぞ!
コンパイルというのがそもそも聞き慣れないと思う。
超カンタンにコンパイルを理解するには、まずコンパイルされてない状態を知るといい。
カフェでコーヒーとか注文したことある?カフェでコーヒーを飲むシーンを例としてコンパイルについて解説してみる。
コンパイルされてない状態(Aさん)
- Aさんはカフェに来ました。
- Aさんは店員に「コーヒーください」と注文しました。
- 店員は「ホットですか?アイスですか?」と聞きました。
- Aさんは「ホットで」と答えました。
- さらに店員は「サイズはどうしますか?」と聞きました。
- Aさんは「スモールで」と答えました。
- すると店員は「あ、ショートでよろしいですか?」とスモールをさりげなく訂正して聞き返しました。
- Aさんは「あ、それで」と答えました。
- 店員は「かしこまりました〜」と注文を受け付けました。
これがコンパイルされてない状態。一つ一つ店員と確認しながら注文するから、少し時間がかかるし、余計な聞き返しなども発生する。
コンパイルされた状態(Bさん)
ではコンパイルされた状態も見ていこう。
- Bさんはカフェに来ました。
- Bさんは店員に「ホットコーヒーをショートで」と注文しました。
- 店員は「かしこまりました〜」と注文を受け付けました。
以上、はや!
Aさんは1つ1つ確認しながら注文していたのに対して、Bさんは注文をまとめて一気に行った。
このように、プログラミングの流れを上から1つ1つ確認しながら実行するのではなく、「注文をまとめておく」ことをコンパイルという。(かなり粗い表現だけど、ニュアンスをつかむための例として)
で、Scratchはプログラムを1つ1つ実行する(インタープリターと呼ばれる)形式になってる。
一方でTurboWarpはコンパイルで実行するようになってる。
このことについてはこちらの「ターボワープはなぜ速いのか」という記事でも別のサンプルを使って解説しているからチェックしてみてほしい。
たぶん基本情報処理みたいな資格試験で出題される知識だった気がする。
使いどころ
「コンパイルされている時は基本的に処理が早いから、すごく重たいロジックを動かして作品のクオリティを上げたい。でもスクラッチでは処理が重すぎてカクカクしちゃうから代わりに軽くて粗い処理を実行したい」って感じで負荷の違う処理を切り分ける時に役立つよ。
is TurboWarp?
読み | 意味 | 解説 |
is TurboWarp? | プロジェクトがターボワープで実行されているかどうか調べる | Scratchなどで実行しているとFALSE。 TurboWarpで実行しているいるからTRUE。 |
このブロックを使っててもScratchで作品を共有できるぞ!
さっきのブロックに似ているけど微妙に違う。
決定的に違うのはForkphorusなどTurboWarp以外のScratchMODを判別したい時。
ForkphorusもTurboWarpと同じように、ScratchをベースにしたMODの1つで、コンパイルすることScratchを高速に処理できるようになっている。
Forkphorusは「is compiled?」はTRUEになるけど、TurboWarpではないので「is TurboWarp」はFALSEになる。
環境 | is compiled? | is TurboWarp? |
Scratch | x | x |
TurboWarp | o | o |
Forkphorus | o | x |
使いどころ
TurboWarp固有の機能を使う前提の機能がある場合はこのブロックが役にたつ。たとえばゲームパッドを利用した操作を選択できるとか。
最後に押されたキー
これはその名の通り、キーボードのどのキーが最後に押されたかを格納してくれる変数的なブロック。
たとえば「a」を押したら↓
大文字と小文字も分けてくれる。「N」を押したら↓
特殊なキーも格納してくれる。「エンター」を押したら↓
「シフト」を押したら↓
すべての特殊キーを保持してくれるわけではないけど、十分かなと思う。
使いどころ
押されたキーを条件ブロックで調べて処理を切り分けるといったことができるね。Scratchだとイベントブロックで「⚪︎キーが押された時」でも代用できるけど、TurboWarpブロックなら処理の途中で条件ブロックの条件として使える。
変数ブロックと同じだからコスチューム名を、最後に押されたキーによって変えるようなロジックも作れそう。
マウスの⚪︎が押された
選択肢を見るとわかるように、マウスで左クリックされたのか、右クリックされたのか、ホイール(マウスにあれば)が回されたのかが分かるようになる。
なかなかに細かいことができそう。
スクラッチだと左クリックは取れるけど、右やホイールは無理だから、そこらへんを使う作品なら魅力的なブロック。
使いどころ
たとえば左クリックなら普通に選択や決定、攻撃とかジャンプとか調べる動作が実行されるけど、右クリックが押された場合は「メニュー」が表示されるような挙動を作ることができる。
ホイールが押されたら画面を素早くスクロールさせることができるといった機能も作れそう!