たとえば、魔法のポーションを使ったゲームを作るとします。 ポーションには、プレイヤーを回復させたり、傷つけたりするさまざまなエフェクトがあります。 プレイヤーのヘルス値や、ポーションによるダメージや回復の量を格納する定数や変数を宣言し、初期化したいと思います。
しかし、どれを定数にし、どれを変数にすればよいのでしょうか。
var PlayerHealth: float = 100.0
PotionDamageAmount: float = 20.0
PotionHealAmount: float = 10.0
ここで行う変数と定数に対する変更はフォートナイト キャラクターのヘルス値に影響を与えません。その方法については後のレッスンでしっかり学びます!
プレイヤーのヘルス値は、どのポーションを使用するかによってゲーム中に変化します。 変化すると思われる場合は、変数と考えます。
一方、ポーションが与えるダメージや回復の量をゲーム中に変更するのはあまり意味がないため、それらは定数として宣言するべきです。
今、
PlayerHealth変数を変更するコードを記述するとしても、ログに出力してみない限り、それがうまくいったかどうかを判断することはできないでしょう。 そのために、以下の文字列定数と文字列変数を宣言して初期化します。 文字列の終わりと最後の"の間にスペースを入れるのを忘れないようにしてください。VersePlayerStatusText: string = "Player health now " var EffectOnPlayerText: string = "damaged "これで、プレイヤーのヘルス値を変更する準備ができました。 変数の値を変更するには、式の最初に
setというキーワードを使用する必要があります。PotionDamageAmountをPlayerHealthから減算する必要があるため、-演算子を使用します。Verseset PlayerHealth = PlayerHealth - PotionDamageAmountPlayerHealthが変化したら、確かめたいですよね! そのために、以下に示すPrint()の呼び出しを行います。VersePrint("The Player was {EffectOnPlayerText + ToString(PotionDamageAmount)}") Print("{PlayerStatusText + ToString(PlayerHealth)}")文字列を使った計算に見えるかもしれませんが、実際には
+演算子で組み合わせています。 これを結合といいます。ToString()関数は、Print()で使用できるようにfloat変数と定数のstringバージョンを作成します。これで、このコードを実行すると、2 つの新しい行が表示されるはずです。
プレイヤーが 20.0 ダメージを受けました。プレイヤーのヘルスが 80.00 になりました。
では、同じことを PotionHealAmount でやってみましょう。
正しいキーワードと演算子を使って
PlayerHealthを変更します。また
EffectOnPlayerText変数を変更して、出力されたときに意味がわかるようにする必要があります。最後に、プレイヤーのヘルス値に及ぼした影響と現在のヘルス値を出力する必要があります。 まずは自分で試し、手助けが必要であれば次のコードを見てください。
Verseset PlayerHealth = PlayerHealth + PotionHealAmount set EffectOnPlayerText = "healed " Print("The Player was {EffectOnPlayerText + ToString(PotionHealAmount)}") Print("{PlayerStatusText + ToString(PlayerHealth)}")
完全なスクリプト
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
hello_world_device := class(creative_device):
# Runs when the device is started in a running game
OnBegin<override>()<suspends> : void =
PotionDamageAmount : float = 20.0
PotionHealAmount : float = 10.0