Преглед на файлове

Added a cool title animation :D

Adrien Boucaud преди 12 години
родител
ревизия
2b537198cf
променени са 3 файла, в които са добавени 17 реда и са изтрити 7 реда
  1. 5 5
      draw_states.c
  2. 8 2
      init_states.c
  3. 4 0
      update_states.c

+ 5 - 5
draw_states.c

@@ -10,7 +10,8 @@ void draw_game(Game_Data *data)
 }
 void draw_title(Game_Data *data)
 {
-
+	PrintMini(20, 28, "Press EXE to begin");
+	drawDiagonals(data->cam, 6, data->line_transition);
 }
 void draw_menu(Game_Data *data)
 {
@@ -48,7 +49,7 @@ void drawPlayer(Camera *cam, int player_angle, int nb_lines, Line_Transition lin
 		y[i] = (8. + cam->zoom)*sin(PI * (tmp_angle + cam->angle)/180.) + cam->cY;
 
 		i++;
-		
+
 		switch(line_transition.delta_nb_lines)
 		{
 			case 0:
@@ -74,7 +75,6 @@ void drawPlayer(Camera *cam, int player_angle, int nb_lines, Line_Transition lin
 	ML_polygone(x, y, nb_lines, BLACK);
 	//draw the player. At such a low scale, it was impossible to draw a rotating triangle, so its a radius 1 circle instead.
 	ML_filled_circle((9. + cam->zoom)*cos( PI*(player_angle + cam->angle)/180) + cam->cX, (9. + cam->zoom)*sin( PI*(player_angle+cam->angle)/180) + cam->cY, 1, BLACK);
-
 }
 
 //draws one of the three rotating lines
@@ -104,8 +104,8 @@ void drawDiagonals(Camera cam, int nb_lines, Line_Transition line_transition)
 		tmp_angle_rad = tmp_angle * PI / 180.0f;
 		x1 = 9.0f * cos(tmp_angle_rad);
 		y1 = 9.0f * sin(tmp_angle_rad);
-		x2 = 64.0f * cos(tmp_angle_rad);
-		y2 = 64.0f * sin(tmp_angle_rad);
+		x2 = 128.0f * cos(tmp_angle_rad);
+		y2 = 128.0f * sin(tmp_angle_rad);
 		ML_line(x1 + cam.cX, y1 + cam.cY, x2 + cam.cX, y2 + cam.cY, BLACK);
 
 		i++;

+ 8 - 2
init_states.c

@@ -41,8 +41,14 @@ void init_game(Game_Data *data)
 }
 void init_title(Game_Data *data)
 {
-
-
+        data->cam.cX = 64;
+        data->cam.cY = 70;
+        data->cam.angle = 0;
+        data->cam.speed = 1.0;
+        data->nb_lines = 6;
+        data->line_transition.counter = 0;
+        data->line_transition.counter_start = 0;
+        data->line_transition.delta_nb_lines = 0;
 }
 
 

+ 4 - 0
update_states.c

@@ -2,6 +2,10 @@
 
 void update_title(Game_Data *data)
 {
+        data->last_time = data->current_time;
+        data->current_time = RTC_GetTicks();
+
+	updateCamera(&(data->cam), data->current_time - data->last_time);
 	if(KeyDown(K_EXE))
 		switch_to_state(MENU, data);
 }