diff options
Diffstat (limited to 'tutorial/t13/cannon.h')
-rw-r--r-- | tutorial/t13/cannon.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/tutorial/t13/cannon.h b/tutorial/t13/cannon.h new file mode 100644 index 000000000..9d3910ea2 --- /dev/null +++ b/tutorial/t13/cannon.h @@ -0,0 +1,71 @@ +/**************************************************************** +** +** Definition of CannonField class, TQt tutorial 13 +** +****************************************************************/ + +#ifndef CANNON_H +#define CANNON_H + +class TQTimer; + + +#include <qwidget.h> + + +class CannonField : public TQWidget +{ + Q_OBJECT +public: + CannonField( TQWidget *parent=0, const char *name=0 ); + + int angle() const { return ang; } + int force() const { return f; } + bool gameOver() const { return gameEnded; } + bool isShooting() const; + TQSizePolicy sizePolicy() const; + +public slots: + void setAngle( int degrees ); + void setForce( int newton ); + void shoot(); + void newTarget(); + void setGameOver(); + void restartGame(); + +private slots: + void moveShot(); + +signals: + void hit(); + void missed(); + void angleChanged( int ); + void forceChanged( int ); + void canShoot( bool ); + +protected: + void paintEvent( TQPaintEvent * ); + +private: + void paintShot( TQPainter * ); + void paintTarget( TQPainter * ); + void paintCannon( TQPainter * ); + TQRect cannonRect() const; + TQRect shotRect() const; + TQRect targetRect() const; + + int ang; + int f; + + int timerCount; + TQTimer * autoShootTimer; + float shoot_ang; + float shoot_f; + + TQPoint target; + + bool gameEnded; +}; + + +#endif // CANNON_H |