本文整理汇总了C++中BaseSprite::reset方法的典型用法代码示例。如果您正苦于以下问题:C++ BaseSprite::reset方法的具体用法?C++ BaseSprite::reset怎么用?C++ BaseSprite::reset使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BaseSprite
的用法示例。
在下文中一共展示了BaseSprite::reset方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: update
bool AdSentence::update(TDirection dir) {
if (!_talkDef) {
return STATUS_OK;
}
uint32 currentTime;
// if sound is available, synchronize with sound, otherwise use timer
/*
if (_sound) CurrentTime = _sound->GetPositionTime();
else CurrentTime = _gameRef->_timer - _startTime;
*/
currentTime = _gameRef->_timer - _startTime;
bool talkNodeFound = false;
for (uint32 i = 0; i < _talkDef->_nodes.size(); i++) {
if (_talkDef->_nodes[i]->isInTimeInterval(currentTime, dir)) {
talkNodeFound = true;
BaseSprite *newSprite = _talkDef->_nodes[i]->getSprite(dir);
if (newSprite != _currentSprite) {
newSprite->reset();
}
_currentSprite = newSprite;
if (!_talkDef->_nodes[i]->_playToEnd) {
break;
}
}
}
// no talk node, try to use default sprite instead (if any)
if (!talkNodeFound) {
BaseSprite *newSprite = _talkDef->getDefaultSprite(dir);
if (newSprite) {
if (newSprite != _currentSprite) {
newSprite->reset();
}
_currentSprite = newSprite;
} else {
_currentSprite = NULL;
}
}
return STATUS_OK;
}