int direction; //direction, 10-key numbers 2-4-6-8 default to 5, stationary
int face; // facing 0 left or 1 right, 4 is two-line
int speed; //speed
+ int vspeed; //fall speed
+ int vtime;
char line0[6]; //object: left
char line1[6]; //object: right
char line2[6]; //object: alt1
char radar[1]; //radar symbol
};
+game_object gravitize(game_object object){
+ if(object.vspeed<4&&object.vspeed>0&&object.vtime%4==0){
+ object.vspeed = object.vspeed + 1;
+ };
+
+ object.vtime++;
+
+ return object;
+}
+
void radar_plot(game_object object, int drawlocation){
if(object.x>0&&object.y>0){
object.y = object.y-object.speed;
};
+ object = gravitize(object);
+ object.x = object.x + object.vspeed;
+
//bounds check
if(object.x<=0){
object.x=1;
object.direction=5;
- object.speed=0;
+ object.vspeed=1;
+ object.vtime=0;
};
if(object.x>=19){
object.x=18;
object.direction=5;
- object.speed=0;
+ object.vspeed=0;
+ object.vtime=0;
};
//wrap check
};
if(input==2){
object.x++;
+ if(object.vspeed<4&&object.vspeed>0){
+ object.vspeed++;
+ };
};
if(input==8){
object.x--;
+ if(object.vspeed>0){
+ object.vspeed--;
+ object.vtime=0;
+ };
};
};
if(input==4){object.face=0;};
player.direction = 5;
player.face = 1;
player.speed = 0;
+ player.vspeed = 0;
+ player.vtime = 0;
strcpy (player.line0, "<==_>");
strcpy (player.line1, "<_==>");
strcpy (player.radar, "=");
gate.direction = 5;
gate.face = 4;
gate.speed = 0;
+ gate.vspeed = 0;
+ gate.vtime = 0;
strcpy (gate.line0, " ^ ");
strcpy (gate.line1, "/|\\");
strcpy (gate.radar, "|");
gatebeam1.direction = 5;
gatebeam1.face = 4;
gatebeam1.speed = 0;
+ gatebeam1.vspeed = 0;
+ gatebeam1.vtime = 0;
strcpy (gatebeam1.line0, " ] ");
strcpy (gatebeam1.line1, " [ ");
strcpy (gatebeam1.radar, "|");
gatebeam2.direction = 5;
gatebeam2.face = 4;
gatebeam2.speed = 0;
+ gatebeam2.vspeed = 0;
+ gatebeam2.vtime = 0;
strcpy (gatebeam2.line0, " ] ");
strcpy (gatebeam2.line1, " [ ");
strcpy (gatebeam2.radar, "|");
gatebeam3.direction = 5;
gatebeam3.face = 4;
gatebeam3.speed = 0;
+ gatebeam3.vspeed = 0;
+ gatebeam3.vtime = 0;
strcpy (gatebeam3.line0, " ] ");
strcpy (gatebeam3.line1, " [ ");
strcpy (gatebeam3.radar, "|");
};
pod2.face = 0;
pod2.speed = 1;
+ pod2.vspeed = 0;
+ pod2.vtime = 0;
strcpy (pod2.line0, " x ");
strcpy (pod2.line1, " x ");
strcpy (pod2.line2, " + ");
};
pod3.face = 0;
pod3.speed = 1;
+ pod3.vspeed = 0;
+ pod3.vtime = 0;
strcpy (pod3.line0, " + ");
strcpy (pod3.line1, " + ");
strcpy (pod3.line2, " x ");
};
pod4.face = 0;
pod4.speed = 1;
+ pod4.vspeed = 0;
+ pod4.vtime = 0;
strcpy (pod4.line0, " x ");
strcpy (pod4.line1, " x ");
strcpy (pod4.line2, " + ");
};
pod5.face = 0;
pod5.speed = 1;
+ pod5.vspeed = 0;
+ pod5.vtime = 0;
strcpy (pod5.line0, " + ");
strcpy (pod5.line1, " + ");
strcpy (pod5.line2, " x ");
};
pod6.face = 0;
pod6.speed = 1;
+ pod6.vspeed = 0;
+ pod6.vtime = 0;
strcpy (pod6.line0, " x ");
strcpy (pod6.line1, " x ");
strcpy (pod6.line2, " + ");
};
pod7.face = 0;
pod7.speed = 1;
+ pod7.vspeed = 0;
+ pod7.vtime = 0;
strcpy (pod7.line0, " + ");
strcpy (pod7.line1, " + ");
strcpy (pod7.line2, " x ");
};
pod8.face = 0;
pod8.speed = 1;
+ pod8.vspeed = 0;
+ pod8.vtime = 0;
strcpy (pod8.line0, " x ");
strcpy (pod8.line1, " x ");
strcpy (pod8.line2, " + ");
};
pod9.face = 0;
pod9.speed = 1;
+ pod9.vspeed = 0;
+ pod9.vtime = 0;
strcpy (pod9.line0, " + ");
strcpy (pod9.line1, " + ");
strcpy (pod9.line2, " x ");