unless block / unless blocksサブコマンドでロケットランチャーを作ろう!
unlessサブコマンドを使用せず、ロケットランチャーを作る場合
統合版マインクラフトの旧executeコマンドは、unlessサブコマンドがサポートされていませんでした。
そのため、ifサブコマンドとスコア(変数)を利用して、ロケットランチャー用の矢などが空気ブロック内にあるかを判別し(1つ目のコマンドブロック)、地面に落下したら状態になったらスコア(変数)を減少させ(2つ目のコマンドブロック)、スコア(変数)が0以下になったら爆発状態のエンダークリスタルを召喚していました(3つ目のコマンドブロック)。
新executeコマンド:unless blockサブコマンド
/execute as @e[type=minecraft:arrow] at @s unless block ~~-1~ air run summon minecraft:ender_crystal ~~~ ~~ minecraft:crystal_explode
【解説】
executeコマンドにより、コマンド実行者は矢で、かつ、矢の真下が空気ブロックでなければ、矢が爆発状態のエンダークリスタルを召喚します。つまり、矢を放ったとき矢は空中にあり、矢の真下は空気ブロックであるため「unless block ~~-1~ air」という条件は成立せず、矢は爆発状態のエンダークリスタルを召喚しません。しかし、矢が地面に落下すると、矢の真下は空気ブロックでなくなり、「unless block ~~-1~ air」という条件が成立して矢は爆発状態のエンダークリスタルを召喚します。
「unless block」では指定した位置のブロックを比較するため、「unless block ~~-1~ air」としたときは矢の真下が空気ブロックでなかったときに条件が成立するのに対して、上図のように真横から矢がブロックに当たった場合、条件が成立せず矢は爆発しない(エンダークリスタルを召喚しない)。
しかし、次に説明する「unless blocks」で指定した領域のブロックを比較することにより、矢が真横からブロックに当たった場合でも矢が爆発する(エンダークリスタルを召喚する)ように出来ます。
「unless block」
指定した位置のブロックが指定したブロックと比較します。
「unless blocks」
指定した領域のブロックを比較する。
新executeコマンド:unless blocksサブコマンド
/execute as @e[type=minecraft:arrow] at @s unless blocks ~1~1~1 ~-1~-1~-1 ~~~ all run summon minecraft:ender_crystal ~~~ ~~ minecraft:crystal_explode
【解説】
executeコマンドにより、コマンド実行者は矢で、かつ、矢の周り(3x3x3範囲)のブロックと、矢(~~~)から~2~2~2の範囲のブロックに違いが生じたとき、矢は爆発状態のエンダークリスタルを召喚する。つまり、矢を放ったとき矢は空中にあり、矢の周り(3x3x3範囲)のブロックと、矢(~~~)から~2~2~2の範囲のブロックはすべて空気ブロックで同じであるため「unless blocks ~1~1~1 ~-1~-1~-1 ~~~ all」という条件は成立せず、矢は爆発状態のエンダークリスタルを召喚しません。しかし、矢が上下左右を問わずブロックに当たると、矢の周り(3x3x3範囲)のブロックと、矢(~~~)から~2~2~2の範囲のブロックで同じでなくなり、「unless blocks ~1~1~1 ~-1~-1~-1 ~~~ all」という条件が成立して矢は爆発状態のエンダークリスタルを召喚します。
教育版マインクラフトは、教育のために特別に設計されたMinecraftのバージョンです。学生たちにクリエイティブな問題解決やコラボレーション、コミュニケーションのスキルを身につけさせることを目的としています。さらに、MakeCodeやPythonなどのプログラミングも学べることが特徴です。教師向けのツールや教材、教育コンテンツが追加されており、学習環境に適した機能が提供されています。
Microsoftが提供する、無料のプログラミング学習用プラットフォーム。MakeCodeエディターでは、ブロックを使ったビジュアルコーディング、PythonとJavaScriptによるテキストコーディングが可能。アプリやソフトウェアをインストールする必要はなく、https://makecode.microbit.org/にアクセスするだけで利用できる。
コンピューターボードmicro:bitを使ったプログラミングや、ゲームプログラミングなどが出来る。教育版マインクラフト、または、統合版マインクラフトにCode Connection for Minecraftをインストールすれば、MaCodeエディターでプログラミングもできる。