在 Lua 检查本地
Checking a local in Lua
我对 Lua 以及一般的编码都很陌生。此代码是运行计时器以检查按键的脚本的一部分。我无法让这部分脚本正常工作。第一部分工作正常 - 它打印消息并将本地设置为 1 - 但是尽管当我按 N 时将本地设置为 1 它总是 returns “没有保存的相机位置可用”消息。我做错了什么?
local campossaved
--(...other code that doesn't access the local "campossaved"...)
-- save camera position (hotkey B) --wip
if (isKeyPressed(VK_B)) then
print("Saved camera position.")
campossaved = 1
end
-- load camera position (hotkey N) --wip
if (isKeyPressed(VK_N)) then
if (campossaved == 1) then
print("Loaded camera position.")
else
print("No saved camera position available.")
end
end
发生这种情况的唯一方法是您不要输入第一个将 1
赋值给 campossaved
的 if 语句
要使其正常工作,isKeyPressed(VK_N)
和 isKeyPressed(VK_B)
都必须 return 为真。所以你可能需要同时按下它们。
你说它是 运行 在定时器循环中。我猜这是一个范围问题,每次 运行 定时器循环时,campossaved 都会重新初始化为 nil
,所以按 B 只会将它设置为 1/60 秒,或者然而加快游戏循环 运行 秒。您需要确保 local campossaved
前向声明在您的计时器被调用之前创建
local campossaved
--function timer(delta)
-- save camera position (hotkey B)
if isKeyPressed(VK_B) then
print("Saved camera position.")
campossaved = true
end
-- load camera position (hotkey N)
if isKeyPressed(VK_N) then
if campossaved then
print("Loaded camera position.")
else
print("No saved camera position available.")
end
end
--end
我对 Lua 以及一般的编码都很陌生。此代码是运行计时器以检查按键的脚本的一部分。我无法让这部分脚本正常工作。第一部分工作正常 - 它打印消息并将本地设置为 1 - 但是尽管当我按 N 时将本地设置为 1 它总是 returns “没有保存的相机位置可用”消息。我做错了什么?
local campossaved
--(...other code that doesn't access the local "campossaved"...)
-- save camera position (hotkey B) --wip
if (isKeyPressed(VK_B)) then
print("Saved camera position.")
campossaved = 1
end
-- load camera position (hotkey N) --wip
if (isKeyPressed(VK_N)) then
if (campossaved == 1) then
print("Loaded camera position.")
else
print("No saved camera position available.")
end
end
发生这种情况的唯一方法是您不要输入第一个将 1
赋值给 campossaved
要使其正常工作,isKeyPressed(VK_N)
和 isKeyPressed(VK_B)
都必须 return 为真。所以你可能需要同时按下它们。
你说它是 运行 在定时器循环中。我猜这是一个范围问题,每次 运行 定时器循环时,campossaved 都会重新初始化为 nil
,所以按 B 只会将它设置为 1/60 秒,或者然而加快游戏循环 运行 秒。您需要确保 local campossaved
前向声明在您的计时器被调用之前创建
local campossaved
--function timer(delta)
-- save camera position (hotkey B)
if isKeyPressed(VK_B) then
print("Saved camera position.")
campossaved = true
end
-- load camera position (hotkey N)
if isKeyPressed(VK_N) then
if campossaved then
print("Loaded camera position.")
else
print("No saved camera position available.")
end
end
--end