メッセージを表示する


GameGuruは日本語の表示に対応していませんので、メッセージ(文章)を表示するには画像を表示するしかありません。

サンプルゲームの中に E キーで調べると張り紙の内容が読めるサンプルがありましたので、それを参考にしてください。

参考にするスクリプトは以下のパスにある note001.lua です。

\Steam\steamapps\common\Game Guru\Files\scriptbank\stories\Cell Shaded

note001.lua は少し複雑すぎる気がするので、次のように簡単にしてみました。

以下に示すLuaスクリプトを message_test.lua という名前で scriptbank に保存し、兵士のAIとして設定します。
あぁ、メッセージ画像はちゃんと自分で用意してくださいね。

-- メッセージに使用する画像は
-- scriptbank\images\original に 000.png 001.png 002.png というような連番画像で収納しておくこと。

-- メッセージが読める距離
local use_range = 120

-- このキーを押したらメッセージを読む
local use_key = "e"

-- 表示するメッセージの番号(000.pngなら0を指定、010.pngとかなら10を指定)
local message_number = 0

local pressed = 0
local reading = {}
local message_image = 0
 
function message_test_init(e)
    LoadImages("original")
    reading[e] = 0
end
 
 
function message_test_main(e)
    -- メッセージを読める距離にいるか?
    if GetPlayerDistance(e) <= use_range then
        -- メッセージを表示中か?
        if reading[e] == 0 then
            -- メッセージは非表示なので、メッセージを表示する
            if GetInKey() == use_key and pressed == 0 then
                RotateToPlayer(e) -- プレイヤーの方を向く
                FreezePlayer() -- プレイヤーを動けなくする
                pressed = 1
                reading[e] = 1
                HideImage(message_number)
                SetImageAlignment(0)
                SetImagePosition(50,80)
                ShowImage(message_number)
            end
        elseif reading[e] >= 1 then
            -- メッセージは表示中なので、メッセージを非表示にする
            if GetInKey() == use_key and pressed == 0 then
                pressed = 1
                HideImage(message_number)
                reading[e] = 0 
                UnFreezePlayer() -- プレイヤーを動けるようにする
            end
        end
    else
        -- メッセージを読めない距離なのにメッセージが表示されていたらメッセージを非表示にする
        if reading[e] > 0 then
            HideImage(message_number)
            reading[e] = 0 
        end
    end
    
    if pressed == 1 and GetInKey() == "" then
        pressed = 0
    end
end
 
function message_test_exit(e)

end
最終更新:2016年01月13日 15:54