animation works

This commit is contained in:
Samat Agishev 2018-02-07 19:39:29 +05:00
parent ad0760dc7d
commit 186b82c06e
2 changed files with 23 additions and 10 deletions

View File

@ -164,7 +164,7 @@ void TMatch3Logic::FillRandomChipMatrix(std::vector<SE::TRenderPairList::iterato
for (size_t i = 0; i < ChipMatrix.size(); i++) { for (size_t i = 0; i < ChipMatrix.size(); i++) {
for (size_t j = 0; j < ChipMatrix[i].size(); j++) { for (size_t j = 0; j < ChipMatrix[i].size(); j++) {
ReplaceAnimation(Eigen::Vector2i(i, j)); //ReplaceAnimation(Eigen::Vector2i(i, j));
} }
} }
@ -351,7 +351,6 @@ void TMatch3Logic::UnmatchChips(std::vector<Eigen::Vector2i> chipList)
void TMatch3Logic::ReplaceAnimation(Eigen::Vector2i p) void TMatch3Logic::ReplaceAnimation(Eigen::Vector2i p)
{ {
TChip& chip = ChipMatrix[p[0]][p[1]]; TChip& chip = ChipMatrix[p[0]][p[1]];
if (SE::ResourceManager->HalibutAnimationManager.AnimationExists(chip.AnimName)) if (SE::ResourceManager->HalibutAnimationManager.AnimationExists(chip.AnimName))
@ -360,13 +359,11 @@ void TMatch3Logic::ReplaceAnimation(Eigen::Vector2i p)
} }
else else
{ {
SE::THalibutExternalAnimObject testAnimObject(Match3FieldParams.ChipTemplateParamsArr[chip.ChipType].SelectedTemplateAnimObject); SE::THalibutExternalAnimObject testAnimObject(Match3FieldParams.ChipTemplateParamsArr[chip.ChipType].SelectedTemplateAnimObject);
testAnimObject.ReplaceAnimObject(chip.RenderPair, chip.VertexListShift / 6); testAnimObject.ReplaceAnimObject(chip.RenderPair, chip.VertexListShift / 6);
SE::ResourceManager->HalibutAnimationManager.AddAnimationObject(chip.AnimName, testAnimObject); SE::ResourceManager->HalibutAnimationManager.AddAnimationObject(chip.AnimName, testAnimObject);
} }
SE::ResourceManager->HalibutAnimationManager.StopAnimation(chip.AnimName); SE::ResourceManager->HalibutAnimationManager.StopAnimation(chip.AnimName);
@ -385,7 +382,7 @@ void TMatch3Logic::MoveVertexListShiftBack(SE::TRenderPairList::iterator renderP
{ {
ChipMatrix[i][j].VertexListShift -= 6; ChipMatrix[i][j].VertexListShift -= 6;
ReplaceAnimation(Eigen::Vector2i(i, j)); //ReplaceAnimation(Eigen::Vector2i(i, j));
} }
} }
} }
@ -450,7 +447,7 @@ void TMatch3Logic::AddChipToUp(size_t colNum, int chipType, Eigen::Vector2f spaw
InnerAddChipToUp(colNum, chipType, spawnPos, chipState); InnerAddChipToUp(colNum, chipType, spawnPos, chipState);
ReplaceAnimation(Eigen::Vector2i(colNum, yPos)); //ReplaceAnimation(Eigen::Vector2i(colNum, yPos));
} }
@ -479,7 +476,7 @@ void TMatch3Logic::InsertEmptyChip(size_t colNum, size_t rowNum, int chipType)
ChipMatrix[colNum].insert(ChipMatrix[colNum].begin() + rowNum, TChip(chipType, RenderPairIteratorVector[renderPairIndex], vertexListShift, chipState)); ChipMatrix[colNum].insert(ChipMatrix[colNum].begin() + rowNum, TChip(chipType, RenderPairIteratorVector[renderPairIndex], vertexListShift, chipState));
ReplaceAnimation(Eigen::Vector2i(colNum, rowNum)); //ReplaceAnimation(Eigen::Vector2i(colNum, rowNum));
//triangleList.NeedRefreshBuffer = true; //triangleList.NeedRefreshBuffer = true;
@ -774,12 +771,26 @@ void TMatch3Logic::ChangeChipType(Eigen::Vector2i p)
//Hack to make sure animation is replaced by new one //Hack to make sure animation is replaced by new one
SE::ResourceManager->HalibutAnimationManager.DeleteAnimationObject(chip.AnimName); SE::ResourceManager->HalibutAnimationManager.DeleteAnimationObject(chip.AnimName);
ReplaceAnimation(Eigen::Vector2i(p[0], p[1])); //ReplaceAnimation(Eigen::Vector2i(p[0], p[1]));
} }
void TMatch3Logic::innerUpdateAnimation(size_t dt) {
for (int i = 0; i < ChipMatrix[0].size(); ++i) {
for (int j = 0; j < ChipMatrix[i].size(); ++j) {
if (Eigen::Vector2i(i, j) != selectedChip) {
ReplaceAnimation(Eigen::Vector2i(i, j));
}
}
}
SE::ResourceManager->HalibutAnimationManager.Update(dt);
}
void TMatch3Logic::SelectChip(Eigen::Vector2i pos) void TMatch3Logic::SelectChip(Eigen::Vector2i pos)
{ {
if (!(selectedChip == Eigen::Vector2i(-1, -1))) if (!(selectedChip == Eigen::Vector2i(-1, -1)))
@ -1199,9 +1210,9 @@ void TMatch3Field::Update(size_t dt)
i->second.RefreshBuffer(); i->second.RefreshBuffer();
} }
innerUpdateAnimation(dt);
SE::ResourceManager->HalibutAnimationManager.Update(dt);
} }
void TMatch3Field::OnTapDown(Eigen::Vector2f pos) void TMatch3Field::OnTapDown(Eigen::Vector2f pos)

View File

@ -214,6 +214,8 @@ protected:
void ChangeChipType(Eigen::Vector2i p); void ChangeChipType(Eigen::Vector2i p);
void innerUpdateAnimation(size_t dt);
public: public:
TMatch3Logic(); TMatch3Logic();