Game Development Reference
In-Depth Information
The idle action
The blackboard can also be used for temporary data, such as the idle action's
idleEndTime data. Once the idle action terminates, we merely set the blackboard attrib-
ute to nil in order to remove it from the blackboard:
SoldierActions.lua :
function SoldierActions_IdleInitialize(userData)
userData.controller:QueueCommand(
userData.agent,
SoldierController.Commands.IDLE);
local sandboxTimeInMillis =
Sandbox.GetTimeInMillis(userData.agent:GetSandbox());
userData.blackboard:Set(
"idleEndTime",
sandboxTimeInMillis + 2000);
end
function SoldierActions_IdleUpdate(deltaTimeInMillis,
userData)
local sandboxTimeInMillis =
Sandbox.GetTimeInMillis(userData.agent:GetSandbox());
if (sandboxTimeInMillis >=
userData.blackboard:Get("idleEndTime")) then
userData.blackboard:Set("idleEndTime", nil);
return Action.Status.TERMINATED;
end
return Action.Status.RUNNING;
end
Search WWH ::




Custom Search