-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTorpedo.cpp
executable file
·61 lines (49 loc) · 1.02 KB
/
Torpedo.cpp
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
# ifndef __CONSTANTS3D__
# include "constants3D.h"
# define __CONSTANTS3D__
# endif
#include <math.h>
class Torpedo{
private:
GLfloat TM[16];
int frames, totalFrames;
GLfloat tempMatrix[16];
public:
Torpedo(GLfloat shipX,GLfloat shipY,GLfloat shipZ, int planetNumber){
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glTranslatef(shipX,shipY,shipZ);
glGetFloatv(GL_MODELVIEW_MATRIX,TM);
glPopMatrix();
frames=0;
if(planetNumber=1)
totalFrames=600;
else
totalFrames=1200;
}
void draw(){
printf("warbird->draw()\n");
glPushMatrix();
glLoadMatrixf(TM);
glColor3f(1.0,0.0,0.0);
glutSolidSphere(25,20,20);
glPopMatrix();
}
void update(){
if(frames>=50){
//smart
}else if(frames<totalFrames){
//move forward
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadMatrixf(TM);
glTranslatef(0.0,0.0,15.0);
glGetFloatv(GL_MODELVIEW_MATRIX,TM);
glPopMatrix();
}else{
//explode
}
frames++;
}
};