blob: 89c1ba421da533ec192fce7e611637feade6a9a8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
/*
* KAsteroids - Copyright (c) Martin R. Jones 1997
*
* Part of the KDE project
*/
#ifndef __AST_VIEW_H__
#define __AST_VIEW_H__
#include <tqwidget.h>
#include <tqptrlist.h>
#include <ntqintdict.h>
#include <ntqtimer.h>
#include <tqcanvas.h>
#include "sprites.h"
#define MAX_POWER_LEVEL 1000
class KAsteroidsView : public TQWidget
{
TQ_OBJECT
public:
KAsteroidsView( TQWidget *parent = 0, const char *name = 0 );
virtual ~KAsteroidsView();
int refreshRate;
void reset();
void setRockSpeed( double rs ) { rockSpeed = rs; }
void addRocks( int num );
void newGame();
void endGame();
void newShip();
void rotateLeft( bool r ) { rotateL = r; rotateSlow = 5; }
void rotateRight( bool r ) { rotateR = r; rotateSlow = 5; }
void thrust( bool t ) { thrustShip = t && shipPower > 0; }
void shoot( bool s ) { shootShip = s; shootDelay = 0; }
void setShield( bool s );
void teleport( bool te) { teleportShip = te && mTeleportCount; }
void brake( bool b );
void pause( bool p);
void showText( const TQString &text, const TQColor &color, bool scroll=TRUE );
void hideText();
int shots() const { return shotsFired; }
int hits() const { return shotsHit; }
int power() const { return shipPower; }
int teleportCount() const { return mTeleportCount; }
int brakeCount() const { return mBrakeCount; }
int shieldCount() const { return mShieldCount; }
int shootCount() const { return mShootCount; }
signals:
void shipKilled();
void rockHit( int size );
void rocksRemoved();
void updateVitals();
private slots:
void hideShield();
protected:
bool readSprites();
void wrapSprite( TQCanvasItem * );
void rockHit( TQCanvasItem * );
void reducePower( int val );
void addExhaust( double x, double y, double dx, double dy, int count );
void processMissiles();
void processShip();
void processPowerups();
void processShield();
double randDouble();
int randInt( int range );
virtual void resizeEvent( TQResizeEvent *event );
virtual void timerEvent( TQTimerEvent * );
void showEvent( TQShowEvent * );
private:
TQCanvas field;
TQCanvasView view;
TQIntDict<TQCanvasPixmapArray> animation;
TQPtrList<TQCanvasSprite> rocks;
TQPtrList<KMissile> missiles;
TQPtrList<KBit> bits;
TQPtrList<KExhaust> exhaust;
TQPtrList<KPowerup> powerups;
KShield *shield;
TQCanvasSprite *ship;
TQCanvasText *textSprite;
bool rotateL;
bool rotateR;
bool thrustShip;
bool shootShip;
bool teleportShip;
bool brakeShip;
bool pauseShip;
bool shieldOn;
bool vitalsChanged;
int shipAngle;
int rotateSlow;
int rotateRate;
int shipPower;
int shotsFired;
int shotsHit;
int shootDelay;
int mBrakeCount;
int mShieldCount;
int mTeleportCount;
int mShootCount;
double shipDx;
double shipDy;
int textDy;
int mFrameNum;
bool mPaused;
int mTimerId;
double rockSpeed;
double powerupSpeed;
bool can_destroy_powerups;
TQTimer *shieldTimer;
bool initialized;
};
#endif
|