Fortnite UEFN VERSE

【VERSE】「レッスン 6:練習の時間です!」をフォートナイトに例えて解説

初心者

練習問題をやっているけど...

レッスン6でやっていたことが活かせていない。。。

誰かわかりやすく教えてください!

当サイトでは、フォートナイトに例えて発信しています!

とーや


今回は、前回のレッスン6の続き【レッスン 6:練習の時間です!】を解説していきます。


※フォートナイトで例えているので理解するのにも時間は多くかからないように工夫している。


名前の関数を宣言


まずはHurtPlayer()という関数を作ってみましょう。

この関数は、特に何も返さないので戻り値の型はvoidになります。

この関数を作るには、Verseファイルの最後に以下のように書く。

HurtPlayer() : void =
     Playspace: fort_playspace = GetPlayspace()
     AllPlayers: []player = Playspace.GetPlayers()
     if (FirstPlayer : player = AllPlayers[0]):
         if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]):
             FortniteCharacter.Damage(50.0)

このコードは、最初のプレイヤーのキャラクターに50ポイントのダメージを与える。

しかし、関数は他の関数の中に作ることはできないので、このHurtPlayer関数はOnBegin関数と同じレベルに書くことを忘れないようにしましょう。


関数のボディを実行する


これでプレイヤーにダメージを与える関数、HurtPlayer()が作れました。

ただ、関数を作っただけではまだ何も動きません。

それは、関数を作っただけでは中身が実行されていないからです。

関数を動かすためには、関数を「呼び出す」必要があります。

それをやるには、OnBegin()関数の中に作ったHurtPlayer()を書いてみよう。

そして、「Player Hurt」って表示させるPrint関数も書く、そうするとこんな感じになる。

OnBegin() : void = 
    HurtPlayer()
    Print("Player Hurt")

これで、ゲームが始まったときにプレイヤーにダメージを与えて、「Player Hurt」と表示するようになります。


関数の宣言を作成


キャラクターの体力を回復する機能があります。

その方法は、Heal()という名前のメソッドを使うこと

そして、ダメージを与える時に使ったDamage()と同じやり方で使えるのです。

さっそくプレイヤーの体力を回復するための関数、HealPlayer()を作ってみましょう。

ファイルの最後に次のコードを書き足します。

HealPlayer() : void =
    Playspace: fort_playspace = GetPlayspace()
    AllPlayers: []player = Playspace.GetPlayers()
    if (FirstPlayer : player


関数呼び出しに追加する


次に、作ったHealPlayer()という関数を使ってみます。

OnBegin()関数内に次のように書いてみましょう。

HurtPlayer()
Print("Player Hurt")
Sleep(5.0)
HealPlayer()
Print("Player Healed")

新しい関数、Sleep()が出てきたのに気づいたかと思います。

これはプログラムを一時停止するための関数で、かっこの中に書いた秒数だけプログラムを一時停止するというもの。

例えば、Sleep(5.0)と書くと、プログラムは5秒間待機する。


Sleep()関数を使う理由は、HurtPlayer()でプレイヤーにダメージを与えた直後にすぐにHealPlayer()で回復させてしまうと、何もなかったかのように見えてしまうから。


だから、5秒間待ってからプレイヤーを回復させる必要があります。


完全なスクリプト


using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Playspaces }
using { /Verse.org/Simulation }
using { /Verse.org/Verse }

hello_world_device := class(creative_device):

# Runs when the device is started in a running game
OnBegin<override>()<suspends>:void=
HurtPlayer()
Print("Player Hurt")
Sleep(5.0)
HealPlayer()
Print("Player Healed")

HurtPlayer() : void =
Playspace: fort_playspace = GetPlayspace()
AllPlayers: []player = Playspace.GetPlayers()
if (FirstPlayer : player = AllPlayers[0]):
if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]):
FortniteCharacter.Damage(50.0)

HealPlayer() : void =
Playspace: fort_playspace = GetPlayspace()
AllPlayers: []player = Playspace.GetPlayers()
if (FirstPlayer : player = AllPlayers[0]):
if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]):
FortniteCharacter.Heal(20.0)


終わりに



今回は、関数でキャラクターの細かい動作などを編集の実践をしました。


もし、質問やわからないことがございましたらDMやコメントをお願い致します!


最後までお読みいただきありがとうございました(@^^)/~~~

とーや


-Fortnite, UEFN, VERSE
-, , ,