Bläddra i källkod

Added nb_lines in Data, slightly modified a few functions prototypes.

Adrien Boucaud 12 år sedan
förälder
incheckning
39a9fa4727
4 ändrade filer med 14 tillägg och 9 borttagningar
  1. 5 5
      draw_states.c
  2. 3 3
      draw_states.h
  3. 4 1
      init_states.c
  4. 2 0
      struct.h

+ 5 - 5
draw_states.c

@@ -2,7 +2,7 @@
 void draw_game(Game_Data *data)
 {
 	//draw the player and the lines
-    drawPlayer(&(data->cam), data->player_angle);
+    drawPlayer(&(data->cam), data->player_angle, data->nb_lines);
     drawDiagonal(1, data->cam);
     drawDiagonal(2, data->cam);
     drawDiagonal(3, data->cam);
@@ -27,7 +27,7 @@ void draw_game_over(Game_Data *data)
 //at first, was supposed to draw an hexagon in the center, plus a triangle to show the player,
 //but the hexagon was not visible, and it was a pixel mess, so we're showing a circle instead.
 //there is still for code to calculate the vertices of the hexagon, in case we want to change that again
-void drawPlayer(Camera *cam, int player_angle)
+void drawPlayer(Camera *cam, int player_angle, int nb_lines)
 {
     int x[6];
     int y[6];
@@ -35,7 +35,7 @@ void drawPlayer(Camera *cam, int player_angle)
     int angle = 0;
     for(i = 0; i<6; ++i)
     {
-        angle = i *60;
+        angle = i * 360 / nb_lines;
         x[i] = (8. + cam->zoom)*cos(PI * (angle + cam->angle)/180.) + cam->cX;
         y[i] = (8. + cam->zoom)*sin(PI * (angle + cam->angle)/180.) + cam->cY;
     }
@@ -49,7 +49,7 @@ void drawPlayer(Camera *cam, int player_angle)
 }
 
 //draws one of the three rotating lines
-void drawDiagonal(int nb, Camera cam)
+void drawDiagonal(int nb, Camera cam, int nb_lines)
 {
     int tmp_angle = 0;
     float coeff = 0;
@@ -83,4 +83,4 @@ void drawDiagonal(int nb, Camera cam)
     }
 	//drawing the line
         ML_line(x1 + cam.cX, y1 + cam.cY, x2 + cam.cX, y2 + cam.cY, BLACK);
-}
+}

+ 3 - 3
draw_states.h

@@ -9,6 +9,6 @@ void draw_title(Game_Data *data);
 void draw_menu(Game_Data *data);
 void draw_game_over(Game_Data *data);
 
-void drawPlayer(Camera *cam, int player_angle);
-void drawDiagonal(int nb, Camera cam);
-#endif
+void drawPlayer(Camera *cam, int player_angle, int nb_lines);
+void drawDiagonal(int nb, Camera cam, int nb_lines);
+#endif

+ 4 - 1
init_states.c

@@ -14,6 +14,9 @@ void init_game(Game_Data *data)
 	data->cam.cY = 32;
 	data->cam.angle = 0;
 	data->cam.speed = 0.0;
+
+	data->nb_lines = 6;
+	data->line_transition_counter = 0;
 }
 void init_title(Game_Data *data)
 {
@@ -27,4 +30,4 @@ void init_menu(Game_Data *data)
 void init_game_over(Game_Data *data)
 {
 
-}
+}

+ 2 - 0
struct.h

@@ -74,6 +74,8 @@ struct Game_Data{
 	unsigned int current_time;
 	unsigned int player_angle;
 
+	unsigned int nb_lines;
+	int line_transition_counter; //neg = removing one line, pos: adding one line
 	Wall *list;
 
 	Level *level;