本文整理汇总了C++中WeakPtr::expired方法的典型用法代码示例。如果您正苦于以下问题:C++ WeakPtr::expired方法的具体用法?C++ WeakPtr::expired怎么用?C++ WeakPtr::expired使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WeakPtr
的用法示例。
在下文中一共展示了WeakPtr::expired方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetCaption
/*=============================================================================
-- Sets the caption of the text in the middle.
=============================================================================*/
void ButtonCaption::SetCaption(String caption)
{
mCaption = caption;
WeakPtr<Text> text = DynamicPtrCast<Text>(GetChild(IEI_BUTTONCAPTION_TEXT).lock());
if (!text.expired())
{
text.lock()->SetText(caption);
Font *font = text.lock()->GetFont();
unsigned width = (unsigned)font->GetTextLengthPx(mCaption.GetStd());
unsigned height = (unsigned)font->GetCharHeightPx();
//clip any characters that don't fit inside from the text element
while (width > GetWidth())
{
mCaption.Remove(mCaption.Size()-1,mCaption.Size());
SetCaption(mCaption);
width = (unsigned)font->GetTextLengthPx(mCaption.GetStd());
}
//properly center the text
text.lock()->SetRelPos( Vector2D<int>((GetWidth()-width)/2, (GetHeight()-height)/2) );
}
}
示例2: HoldObject
/*=============================================================================
-- Adds the object to the inventory. Effectively "picking up" the object.
=============================================================================*/
void Actor::HoldObject(WeakPtr<Object> object)
{
if (!object.expired())
{
mInventory->AddObject(object);
object.lock()->SetHost( GetManager()->GetEntity(GetId()) );
}
}
示例3: DropObject
/*=============================================================================
-- Drops the object with the id in the inventory if it exists.
=============================================================================*/
void Actor::DropObject(int id)
{
//place the object on the ground behind the Actor so it does not walk over it right away.
WeakPtr<Object> object = mInventory->GetObject(id);
if (!object.expired())
{
object.lock()->SetHeld(false);
object.lock()->SetPos(Vector3D<double>(GetPos().x+32.0, GetPos().y+32.0, GetPos().z+2.0));
mInventory->RemoveObject(id);
}
}
示例4: ReactToCollision
/*=============================================================================
-- Special actions for colliding with certain enity types.
=============================================================================*/
void Actor::ReactToCollision(WeakPtr<Entity> entity)
{
if (entity.expired())
return;
if (entity.lock()->GetType() == OBJECT)
{
WeakPtr<Object> object = WeakPtr<Object>(DynamicPtrCast<Object>(entity.lock()));
if (object.lock()->GetObtainable())
HoldObject( object );
}
}
示例5: operator
bool operator()(const WeakPtr &wp) const
{
return wp.expired();
}