Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Adding inverse property to QuasiAnimation
This property just inverses the order of the animation.
Also, closes issue #8.

Signed-off-by: Rodrigo Goncalves de Oliveira <rodrigo.goncalves@openbossa.org>
  • Loading branch information
mdkcore0 committed Apr 9, 2012
1 parent f9bd138 commit 3ad60a7
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
23 changes: 23 additions & 0 deletions src/spriteanimationitem.cpp
Expand Up @@ -29,6 +29,7 @@ SpriteAnimationItem::SpriteAnimationItem(QState *parent)
: QState(parent)
, m_spriteSheet(new SpriteSheet)
, m_spriteAnimation(new QPropertyAnimation(this))
, m_inverse(false)
{
connect(m_spriteSheet, SIGNAL(sourceChanged()), this, SIGNAL(sourceChanged()));
connect(m_spriteSheet, SIGNAL(frameChanged()), this, SIGNAL(frameChanged()));
Expand Down Expand Up @@ -164,6 +165,28 @@ void SpriteAnimationItem::setDuration(const int &duration)
}
}

bool SpriteAnimationItem::inverse() const
{
return m_inverse;
}

void SpriteAnimationItem::setInverse(const bool &inverse)
{
if (m_inverse != inverse) {
m_inverse = inverse;

if (m_inverse) {
m_spriteAnimation->setStartValue(frames());
m_spriteAnimation->setEndValue(0);
} else {
m_spriteAnimation->setStartValue(0);
m_spriteAnimation->setEndValue(frames());
}

emit inverseChanged();
}
}

bool SpriteAnimationItem::verticalMirror() const
{
return m_spriteSheet->verticalMirror();
Expand Down
7 changes: 7 additions & 0 deletions src/spriteanimationitem.h
Expand Up @@ -23,6 +23,7 @@
#define _SPRITEANIMATIONITEM_H_

#include <QtCore/QState>
#include <QtCore/QPropertyAnimation>

class SpriteSheet;
class QPropertyAnimation;
Expand All @@ -40,6 +41,7 @@ class SpriteAnimationItem : public QState
Q_PROPERTY(int loops READ loops WRITE setLoops NOTIFY loopsChanged)
Q_PROPERTY(bool visible READ visible WRITE setVisible NOTIFY visibleChanged)
Q_PROPERTY(int duration READ duration WRITE setDuration NOTIFY durationChanged)
Q_PROPERTY(bool inverse READ inverse WRITE setInverse NOTIFY inverseChanged)

public:
SpriteAnimationItem(QState *parent = 0);
Expand Down Expand Up @@ -71,6 +73,9 @@ class SpriteAnimationItem : public QState
int duration() const;
void setDuration(const int &duration);

bool inverse() const;
void setInverse(const bool &inverse);

bool verticalMirror() const;
void setVerticalMirror(const bool &verticalMirror);

Expand All @@ -88,12 +93,14 @@ class SpriteAnimationItem : public QState
void initialFrameChanged();
void visibleChanged();
void durationChanged();
void inverseChanged();
void finished();

private:
QString m_name;
SpriteSheet *m_spriteSheet;
QPropertyAnimation *m_spriteAnimation;
bool m_inverse;
};

#endif /* _SPRITEANIMATIONITEM_H_ */

0 comments on commit 3ad60a7

Please sign in to comment.