メッセージを表示する
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