]> git.sven.stormbind.net Git - sven/vym.git/blob - winter.h
8fbb2cc1ed0b371951ad2e20ad217aeee5a50973
[sven/vym.git] / winter.h
1 #ifndef WINTER_H
2 #define WINTER_H
3
4 #include <QObject>
5 #include <QGraphicsItem>
6 #include <QTimer>
7 #include <QRectF>
8
9 class QGraphicsView;
10 class QGraphicsScene;
11
12 class SnowFlake:public QGraphicsItem
13 {
14 public:
15     SnowFlake(QGraphicsScene *scene);
16     ~SnowFlake();
17     QRectF boundingRect() const;
18     void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*);
19     void animate();
20     void blow(const QPointF &v);
21 private:
22     int size;
23     QList <QGraphicsLineItem*> lines;
24     QPointF dv;
25     QPointF dblow;
26     qreal da;
27 };
28
29 class Winter:public QObject {
30     Q_OBJECT
31 public:
32     Winter(QGraphicsView *view);
33     ~Winter();
34     void updateView();
35     void setObstacles(QList <QRectF> obslist);
36
37 public slots:
38     void animate();
39     void makeSnow();
40
41 private:
42     QGraphicsView *view;
43     QList <SnowFlake*> fallingSnow;
44     QList <SnowFlake*> frozenSnow;
45     int maxFlakes;
46     QTimer *animTimer;
47     QTimer *snowTimer;
48     QList <QRectF> obstacles;
49
50     int maxFalling;
51     int maxUnfreeze;
52     //QGraphicsLineItem *test;
53
54     QRectF viewRect;
55 };
56
57 #endif