forked from bartvdbraak/blender
BGE Animations: Adding more functions to BL_ActionManager and KX_GameObject:
BL_ActionManager: * IsActionDone(short layer) - Checks to see if the animation on the given layer has finished. KX_GameObject: * PlayAction(...) - Adds an action to the object's action manager * StopAction(short layer) - Remove an action from the object's action manager * IsActionDone(short layer) - Check if an action has finished playing
This commit is contained in:
parent
b31385f3bd
commit
54a37ba855
@ -66,6 +66,14 @@ void BL_ActionManager::StopAction(short layer)
|
||||
m_layers[layer] = 0;
|
||||
}
|
||||
|
||||
bool BL_ActionManager::IsActionDone(short layer)
|
||||
{
|
||||
if (m_layers[layer])
|
||||
return m_layers[layer]->IsDone();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void BL_ActionManager::Update(float curtime)
|
||||
{
|
||||
for (int i=0; i<MAX_ACTION_LAYERS; ++i)
|
||||
|
@ -53,6 +53,7 @@ public:
|
||||
float playback_speed=1.f);
|
||||
|
||||
void StopAction(short layer);
|
||||
bool IsActionDone(short layer);
|
||||
void Update(float);
|
||||
#ifdef WITH_CXX_GUARDEDALLOC
|
||||
public:
|
||||
|
@ -352,6 +352,28 @@ void KX_GameObject::RemoveParent(KX_Scene *scene)
|
||||
}
|
||||
}
|
||||
|
||||
void KX_GameObject::PlayAction(const char* name,
|
||||
float start,
|
||||
float end,
|
||||
short layer,
|
||||
float blendin,
|
||||
short play_mode,
|
||||
short blend_mode,
|
||||
float playback_speed)
|
||||
{
|
||||
m_actionManager->PlayAction(this, name, start, end, layer, blendin, play_mode, blend_mode, playback_speed);
|
||||
}
|
||||
|
||||
void KX_GameObject::StopAction(short layer)
|
||||
{
|
||||
m_actionManager->StopAction(layer);
|
||||
}
|
||||
|
||||
bool KX_GameObject::IsActionDone(short layer)
|
||||
{
|
||||
return m_actionManager->IsActionDone(layer);
|
||||
}
|
||||
|
||||
void KX_GameObject::UpdateActionManager(float curtime)
|
||||
{
|
||||
m_actionManager->Update(curtime);
|
||||
@ -3024,7 +3046,7 @@ KX_PYMETHODDEF_DOC(KX_GameObject, playAction,
|
||||
blend_mode = BL_Action::ACT_BLEND_NONE;
|
||||
}
|
||||
|
||||
m_actionManager->PlayAction(this, name, start, end, layer, blendin, play_mode, blend_mode, speed);
|
||||
PlayAction(name, start, end, layer, blendin, play_mode, blend_mode, speed);
|
||||
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
@ -202,6 +202,28 @@ public:
|
||||
*/
|
||||
void RemoveParent(KX_Scene *scene);
|
||||
|
||||
/**
|
||||
* Adds an action to the object's action manager
|
||||
*/
|
||||
void PlayAction(const char* name,
|
||||
float start,
|
||||
float end,
|
||||
short layer=0,
|
||||
float blendin=0.f,
|
||||
short play_mode=0,
|
||||
short blend_mode=0,
|
||||
float playback_speed=1.f);
|
||||
|
||||
/**
|
||||
* Remove an action from the object's action manager
|
||||
*/
|
||||
void StopAction(short layer);
|
||||
|
||||
/**
|
||||
* Check if an action has finished playing
|
||||
*/
|
||||
bool IsActionDone(short layer);
|
||||
|
||||
/**
|
||||
* Kick the object's action manager
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user