void SpawnPointSpriteManager::update() { if (m_spawnPoint->isFree() && m_currentSprite.getImage() == Sprite::SPAWN_POINT_OCCUPIED) { m_currentSprite = Sprite(Sprite::SPAWN_POINT_FREE, m_spawnPoint->getShape()); clearSprites(); addSprite(m_currentSprite); } else if (!m_spawnPoint->isFree() && m_currentSprite.getImage() == Sprite::SPAWN_POINT_FREE) { clearSprites(); m_currentSprite = Sprite(Sprite::SPAWN_POINT_OCCUPIED, m_spawnPoint->getShape()); addSprite(m_currentSprite); } WorldSpriteManager::update(); }
/* unloadSprites - This method removes all artwork from memory that has been allocated for game sprites. */ void SpriteManager::unloadSprites() { // @TODO - WE'LL DO THIS LATER WHEN WE LEARN MORE ABOUT MEMORY MANAGEMENT clearSprites(); }
void StagePanel::clear() { EditPanel::clear(); clearSprites(); }
void AnimationViewerPanel::refresh() { if (!isAnimationPlaying() || isAnimationExist()) { refreshed = true; clearSprites(); } if (!isAnimationPlaying()) { float targetX = mpAnimationModel->getTargetSprite()->mSpriteDescriptor.mPosition.mX; float targetY = mpAnimationModel->getTargetSprite()->mSpriteDescriptor.mPosition.mY; QPoint centerPoint = getCenterPoint(); if (targetX < -centerPoint.x()){targetX = -centerPoint.x();} if (targetX > centerPoint.x()){targetX = centerPoint.x();} if (targetY < -centerPoint.y()){targetY = -centerPoint.y();} if (targetY > centerPoint.y()){targetY = centerPoint.y();} mpAnimationModel->setTargetSpritePosition(targetX, targetY); // set cel reference KeyFrame::KeyFramePosition keyframePosition = mpAnimationModel->getCurrentKeyFramePosition(); KeyFrame* pKeyframe = mpAnimationModel->getKeyFrame(keyframePosition.mLineNo, keyframePosition.mFrameNo); if (pKeyframe) { mpSelectedCelModel->setKeyFrameDataReference(pKeyframe->mpKeyFrameData); emit celSelected(pKeyframe->mpKeyFrameData); } else { mpSelectedCelModel->setKeyFrameDataReference(NULL); emit celSelected(NULL); } } // Update target info GLSprite* pTargetMonsterSprite = mpAnimationModel->createGLSpriteAt(NULL, mpAnimationModel->getCurrentKeyFramePosition().mFrameNo, AnimationModel::LINE_target); if (pTargetMonsterSprite) { if (pTargetMonsterSprite->mLineNo == AnimationModel::LINE_target) { GLSprite::Point2 pt = spTargetSprite->mSpriteDescriptor.mPosition; pt.mX = pTargetMonsterSprite->mSpriteDescriptor.mPosition.mX + AnimationModel::TARGET_originX; pt.mY = pTargetMonsterSprite->mSpriteDescriptor.mPosition.mY + AnimationModel::TARGET_originY; spTargetSprite->mSpriteDescriptor.mPosition = pt; //spTargetSprite->mSpriteDescriptor.mTextureSrcRect = pTargetMonsterSprite->mSpriteDescriptor.mTextureSrcRect; spTargetSprite->mSpriteDescriptor.mCenter.mX = 0; spTargetSprite->mSpriteDescriptor.mCenter.mY = 0; } delete pTargetMonsterSprite; } mGlSpriteList = mpAnimationModel->createGLSpriteListAt(NULL, mpAnimationModel->getCurrentKeyFramePosition().mFrameNo); mRenderSpriteList.append(mGlSpriteList); for (int lineNo = 0; lineNo < AnimationModel::LINE_COUNT; lineNo++) { for (int i = mEmittedAnimationList[lineNo].count() - 1; i >= 0; i--) { mRenderSpriteList.push_back(mEmittedAnimationList[lineNo][i]->getSprite()); } } qSort(mRenderSpriteList.begin(), mRenderSpriteList.end(), GLSprite::priorityLessThan); repaint(); }