fix animation manager
This commit is contained in:
parent
8091651cc7
commit
5813da7e97
@ -49,7 +49,7 @@ class Animation
|
|||||||
class AnimationManager
|
class AnimationManager
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
std::map<std::string, Animation> *animations;
|
std::map<std::string, Animation*> animations;
|
||||||
std::map<std::string, bool> flip;
|
std::map<std::string, bool> flip;
|
||||||
std::map<std::string, bool> autoRect;
|
std::map<std::string, bool> autoRect;
|
||||||
std::string currentAnimation;
|
std::string currentAnimation;
|
||||||
|
3
makefile
3
makefile
@ -13,5 +13,8 @@ $(TARGET): $(OBJ)
|
|||||||
build/%.o: src/%.cpp
|
build/%.o: src/%.cpp
|
||||||
@$(CXX) -c -o $@ $< $(CXXFLAGS)
|
@$(CXX) -c -o $@ $< $(CXXFLAGS)
|
||||||
|
|
||||||
|
dirs:
|
||||||
|
@mkdir -p build/x86_64
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@rm -f $(OBJ) $(TARGET)
|
@rm -f $(OBJ) $(TARGET)
|
@ -54,7 +54,7 @@ int main(int argc, char* argv[])
|
|||||||
// Create sprite and animation
|
// Create sprite and animation
|
||||||
Sprite* sprite = new Sprite(renderer, assets);
|
Sprite* sprite = new Sprite(renderer, assets);
|
||||||
AnimationManager* animations = new AnimationManager(sprite);
|
AnimationManager* animations = new AnimationManager(sprite);
|
||||||
animations->addAnimation("idle", frames);
|
animations->addAnimation("idle", frames, 10, false, true, true, true);
|
||||||
animations->setAnimation("idle");
|
animations->setAnimation("idle");
|
||||||
|
|
||||||
// Main loop
|
// Main loop
|
||||||
@ -76,7 +76,7 @@ int main(int argc, char* argv[])
|
|||||||
animations->update();
|
animations->update();
|
||||||
|
|
||||||
// Clear screen
|
// Clear screen
|
||||||
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
|
SDL_SetRenderDrawColor(renderer, 100, 100, 255, 255);
|
||||||
SDL_RenderClear(renderer);
|
SDL_RenderClear(renderer);
|
||||||
|
|
||||||
// Draw sprite
|
// Draw sprite
|
||||||
|
@ -106,10 +106,10 @@ void AnimationManager::addAnimation(std::string name, std::map<std::string, SDL_
|
|||||||
animations[name] = new Animation(frames, sprite, frameDuration);
|
animations[name] = new Animation(frames, sprite, frameDuration);
|
||||||
this->flip[name] = flip;
|
this->flip[name] = flip;
|
||||||
this->autoRect[name] = autoRect;
|
this->autoRect[name] = autoRect;
|
||||||
animations[name].loop = loop;
|
animations[name]->loop = loop;
|
||||||
animations[name].pingpong = pingpong;
|
animations[name]->pingpong = pingpong;
|
||||||
}
|
}
|
||||||
|
void autorect(std::string frame);
|
||||||
void AnimationManager::setAnimation(std::string name)
|
void AnimationManager::setAnimation(std::string name)
|
||||||
{
|
{
|
||||||
currentAnimation = name;
|
currentAnimation = name;
|
||||||
@ -117,10 +117,10 @@ void AnimationManager::setAnimation(std::string name)
|
|||||||
|
|
||||||
void AnimationManager::update()
|
void AnimationManager::update()
|
||||||
{
|
{
|
||||||
animations[currentAnimation].update();
|
animations[currentAnimation]->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AnimationManager::draw(SDL_Renderer* renderer)
|
void AnimationManager::draw(SDL_Renderer* renderer)
|
||||||
{
|
{
|
||||||
animations[currentAnimation].draw(renderer, autoRect[currentAnimation], flip[currentAnimation]);
|
animations[currentAnimation]->draw(renderer, autoRect[currentAnimation], flip[currentAnimation]);
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user