前提条件:learn-code-basics-3-storing-and-using-information-in-verse
たとえば、魔法のポーションを使ったゲームを作るとします。 ポーションには、プレイヤーを回復させたり、傷つけたりするさまざまなエフェクトがあります。 プレイヤーのヘルス値や、ポーションによるダメージや回復の量を格納する定数や変数を宣言し、初期化したいと思います。
しかし、どれを定数にし、どれを変数にすればよいのでしょうか。
var PlayerHealth: float = 100.0
PotionDamageAmount: float = 20.0
PotionHealAmount: float = 10.0
ここで行う変数と定数に対する変更はフォートナイト キャラクターのヘルス値に影響を与えません。その方法については後のレッスンでしっかり学びます!
プレイヤーの体力値は、どのポーションを使用するかによってゲーム中に変化します。変化する と思われるものについては 変数 にすることを考えましょう。
一方で、ポーションが与えるダメージや回復の量をゲーム中に変更するのはあまり意味がないため、それらは 定数 として宣言すべきです。
-
今
PlayerHealth
変数を変更するコードを記述するとしても、ログに出力してみない限り、それがうまくいったかどうかを判断することはできないでしょう。そのために、以下の文字列定数と文字列変数を宣言して初期化します。テキストの末尾と最後の"
の間に忘れずにスペースを入れます。PlayerStatusText: string = "Player health now " var EffectOnPlayerText: string = "damaged "
-
これで、プレイヤーの体力値を変更する準備ができました。変数の値を変更するには、式の先頭で
set
キーワードを使用する必要があります。PlayerHealth
からPotionDamageAmount
を減算する必要があるため、-
演算子を使用します。set PlayerHealth = PlayerHealth - PotionDamageAmount
-
PlayerHealth
が変更されたら、その証拠を確認する必要があります。これを行うには、次のようにPrint()
の呼び出しを行います。Print("The Player was {EffectOnPlayerText + ToString(PotionDamageAmount)}") Print("{PlayerStatusText + ToString(PlayerHealth)}")
文字列を使用して数学演算を行っているように見えるかもしれませんが、実際には
+
演算子で 結び付けて います。これを 結合 といいます。ToString()
関数は、Print()
で使用できるようにfloat
変数と定数のstring
バージョンを作成します。 -
これで、このコードを実行すると 2 つの新しい行が表示されるはずです。
The Player was damaged 20.0
Player health now 80.00
では、同じことを PotionHealAmount
でやってみましょう。
- 正しい キーワード と 演算子 を使って
PlayerHealth
を変更します。 - また、出力されたときに意味がわかるように
EffectOnPlayerText
変数を変更する必要もあります。 -
最後に、プレイヤーの体力値に及ぼした影響と現在の体力値を出力する必要があります。まずは自分で試し、手助けが必要であれば次のコードを見てください。
set 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):
# 実行中のゲームで仕掛けが開始されたときに実行します
OnBegin<override>()<suspends> : void =
PotionDamageAmount : float = 20.0
PotionHealAmount : float = 10.0
var PlayerHealth : float = 100.0
PlayerStatusText : string = "Player health now "
var EffectOnPlayerText: string = "damaged "
set PlayerHealth = PlayerHealth - PotionDamageAmount
Print("The Player was {EffectOnPlayerText + ToString(PotionDamageAmount)}")
Print("{PlayerStatusText + ToString(PlayerHealth)}")
set PlayerHealth = PlayerHealth + PotionHealAmount
set EffectOnPlayerText = "healed "
Print("The Player was {EffectOnPlayerText + ToString(PotionHealAmount)}")
Print("{PlayerStatusText + ToString(PlayerHealth)}")