当球向左移动时,精灵不会动画

时间:2014-02-02 00:33:26

标签: c++ graphics animation

我正在使用SFML 2.1。我的程序是一个弹跳球的简单程序。当我向右移动时,球的动画帧的循环就好了,但是当source.y = 0并且我向左移动球时,它将不会循环。谁能明白为什么?

tBall是完整精灵表的纹理。 Frame.x和frame.y是我从精灵表中获取的每个帧的大小。而source.x和source.y是精灵表中的坐标。

frameCounter += frameSpeed * frameClock.restart().asSeconds();
    if (frameCounter >= switchFrame)
    {
        frameCounter = 0;

        //Moving Right
        if (velocity.x < 0)
            source.y += (frame.y * Right);
        //Loop
        if (source.y > tBall.getSize().y - frame.y)
            source.y = 0;

        //Moving Left
        if (velocity.x > 0)
            source.y += (frame.y * Left);
        //Loop
        if (source.y < 0)
            source.y = (tBall.getSize().y - frame.y);
    }

    std::cout << source.y << std::endl;
    ball.setTextureRect(sf::IntRect(source.x, source.y, frame.x, frame.y));

对不起,如果这是一个愚蠢的忽视。 提前谢谢!

PS。这是我的第一个问题,所以如果我写得太多,太少,太模糊等,请评论。

编辑:左= 1,右= -1

0 个答案:

没有答案