Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: Animation for player sprite?  (Read 1217 times)

0 Members and 1 Guest are viewing this topic.

the__cows

  • Newbie
  • *
  • Posts: 7
    • View Profile
Animation for player sprite?
« on: July 10, 2015, 07:56:27 pm »
Hi,

So basically I'm making a small platformer game, and I have the textures etc setup for the sprite animation. What I want to know is, is there a better way of doing this? The code I am currently using is:


case RIGHT:
                if (globals.ggs == IN_GAME) {
                        sf::Clock animationClock;
                        sf::Time clockTimeTemp;
                        playerSprite.setPosition(playerSprite.getPosition().x + 10, playerSprite.getPosition().y);
                        while (true) {
                                clockTimeTemp = animationClock.getElapsedTime();
                                if (clockTimeTemp.asMilliseconds() >= 7.f) {
                                        break;
                                }
                        }

                        animationClock.restart();

                        playerSprite.setTexture(p1);
                        initGame();

                        while (true) {
                                clockTimeTemp = animationClock.getElapsedTime();
                                if (clockTimeTemp.asMilliseconds() >= 7.f) {
                                        break;
                                }
                        }

                        animationClock.restart();

                        playerSprite.setTexture(p2);
                        initGame();

                        while (true) {
                                clockTimeTemp = animationClock.getElapsedTime();
                                if (clockTimeTemp.asMilliseconds() >= 7.f) {
                                        break;
                                }
                        }

                        animationClock.restart();

                        playerSprite.setTexture(p3);
                        initGame();

                        while (true) {
                                clockTimeTemp = animationClock.getElapsedTime();
                                if (clockTimeTemp.asMilliseconds() >= 10.f) {
                                        break;
                                }
                        }

                        animationClock.restart();
                        initGame();
                }

                break;
 

Even though this works, other mechanics such as jumping haven't been implemented yet, and because of the while(true)'s, I'm worried this will cause things such as delays.

Any better ways?

Thanks,
Jay :)

Jesper Juhl

  • Hero Member
  • *****
  • Posts: 1405
    • View Profile
    • Email
« Last Edit: July 10, 2015, 08:48:20 pm by Jesper Juhl »