MinecraftConnection 1.1.0 での花火アイテム作成方法

イクラプログラミング用のライブラリ MinecraftConnection ですが、先日 Version 1.1.0 をリリースしました。

www.nuget.org

今回は花火アップデートということで、花火のコンストラクタや拡張メソッドの追加など、いくつかの変更をおこないました。

コンストラクタの引数変更

以前は、花火アイテム(インスタンス)を作るためにコンストラクタの引数に7つのパラメータが必要でした。

  • 花火が爆発するまでの時間 (int)
  • 飛行距離 (int)
  • 花火が爆発したときの形状 (FireworksShapes)
  • きらめき効果の有無 (bool)
  • 流星効果の有無 (bool)
  • 花火が爆発したときの色 (FireworksColors)
  • 花火がフェードアウトするときの色 (FireworksColors)
var fireworks = new Fireworks(20, 2, FireworksShapes.LargeBall, false, false, FireworksColors.RED, FireworksColors.RED);

これを4つのパラメータだけで花火を作れるようにしました。

  • 花火が爆発するまでの時間 (int)
  • 花火が爆発したときの形状 (FireworksShapes)
  • 花火が爆発したときの色 (FireworksColors)
  • 花火がフェードアウトするときの色 (FireworksColors)
var fireworks = new Fireworks(20, FireworksShapes.LargeBall, FireworksColors.RED, FireworksColors.RED);

きらめき効果と流星効果については拡張メソッドにて説明します。

拡張メソッドの追加

花火がフェードアウトしていくときのキラキラ弾けていくきらめき効果と、光が散るときの軌跡が残る流星効果は拡張メソッドを使用することで付与することができます。拡張メソッドはクラスの宣言は必要ありません。(FireworksOptions クラスに定義されています。)

きらめき効果は Flicker() 、流星効果は Trail() を使用します。

きらめき効果を付与する場合

var fireworks = new Fireworks(20, FireworksShapes.LargeBall, FireworksColors.RED, FireworksColors.RED).Flicker();

流星効果を付与する場合

var fireworks = new Fireworks(20, FireworksShapes.LargeBall, FireworksColors.RED, FireworksColors.RED).Trail();

両方の効果を付与する場合

var fireworks = new Fireworks(20, FireworksShapes.LargeBall, FireworksColors.RED, FireworksColors.RED).Flicker().Trail();

ランダムな色を取得するメソッドの追加

花火を打ち上げるときに色の指定が必要ですが、いちいち指定するのが面倒な場合は RandomColors メソッドを使用すると、ランダムに色を取得出来ます。 このメソッドは FireworksOptions クラスにありますが、静的メソッドのためインスタンス化は不要です。

ランダムに3色取得する場合

FireworksOptions.RandomColors(3)

1 ~ 5 色をランダムで取得する場合

FireworksOptions.RandomColors(1, 5)

上記の例で花火アイテムを作成する場合

 var fireworks = new Fireworks(20, FireworksShapes.LargeBall, FireworksOptions.RandomColors(3), FireworksOptions.RandomColors(1, 5));

あとは MinecraftCommands クラス内に定義されている SetOffFireworks メソッドに打ち上げる座標と、作った花火アイテム(インスタンス)を代入して呼び出すと花火を打ち上げることが出来ます。

ちなみに、座標もランダムにすると、よりリアルな打ち上げ花火が楽しめます。

f:id:takunology:20210812071949j:plain

まとめ

MinecraftConnection 1.1.0 での変更点は主に花火アイテムです。

  • Fireworks クラスのコンストラクタの引数が 7 から 4 つに変更
  • きらめき効果と流星効果は拡張メソッドで付与できる
  • 花火の色をランダムに設定できる RandomColors メソッドの追加

イクラプログラミングについては下記を参照してください。(現在制作中です。)

www.mcwithcode.com

イベントのお知らせ

2021年8月27日(金)20:00 より、MS Tech Camp #10 を開催します!
今回は Azure Functions の .NET ランタイムとC#プログラミングを使用して、Minecraft で花火を打ち上げます。 Azure Functions や マイクラプログラミング(C#)に興味のある方、ぜひご参加ください!(Minecraft Java 版でも統合版でもご参加いただけます)

mspjp.connpass.com

夏の思い出に「マイクラ花火」いかがでしょうか?