#define MAXSPACEDOTS 2000
#define W 100
#define M 255
-#define START_RAD 300 // radius^2 (pixels) which will be cleared of rocks when you die
+#define START_RAD 200 // radius^2 (pixels) which will be cleared of rocks when you die
// soon as it isn't we BLOW UP
float x,y,xvel,yvel;
int active;
+ int dead; // has been blown out of the way
+ // to make room for a new ship appearing.
SDL_Surface *image;
int type_number;
float heat;
// Create a new ship and start all over again
state = GAMEPLAY;
play_tune(1);
- // xship = 10;
- // yship = YSIZE/2;
- xvel = 3;
- yvel = 0;
+ xship -= 50;
+ // xvel = 3;
+ // yvel = 0;
break;
case GAME_OVER:
state = HIGH_SCORE_ENTRY;
n *= 50;
rock[i].xvel += rockrate*(dx+30)/n;
rock[i].yvel += rockrate*dy/n;
+ rock[i].dead = 1;
}
}
}
for(i = 0; i<MAXROCKS; i++) if(rock[i].active) {
rock[i].x += rock[i].xvel*movementrate;
rock[i].y += rock[i].yvel*movementrate + yscroll;
+ if(rock[i].dead && rock[i].y < 0 || rock[i].y > YSIZE) rock[i].active = 0;
if(rock[i].y > YSIZE) {
rock[i].y -= YSIZE;
rock[i].y -= rock[i].image->w;
rock[i].y += rock[i].image->w;
}
if(rock[i].x < -32.0) rock[i].active = 0;
- if(rock[i].xvel > 0) {
- if(rock[i].y < 0 || rock[i].y > YSIZE) rock[i].active = 0;
- if(rock[i].x > XSIZE) rock[i].active = 0;
- }
}
else {
state = DEAD_PAUSE;
state_timeout = 50.0;
+ xvel = 0;
+ yvel = 0;
}
}
for(i = 0; i<MAXROCKS; i++ ) {
rock[i].active = 0;
+ rock[i].dead = 0;
}
rockrate = 54.0;
while(1) {
for(i = 0; i<MAXROCKS; i++) {
rock[i].active = 0;
+ rock[i].dead = 0;
}
rockrate = 54.0;
rockspeed = 5.0;