Sfoglia il codice sorgente

Refactor, finished title screen, better corner text routines.

Eiyeron Fulmincendii 11 anni fa
parent
commit
84f09f7fa7
7 ha cambiato i file con 33 aggiunte e 6 eliminazioni
  1. 6 0
      draw_states.c
  2. 6 0
      hexagon.c
  3. 3 3
      init_states.c
  4. BIN
      sprites/Title.png
  5. 7 0
      states.c
  6. 3 0
      struct.h
  7. 8 3
      update_states.c

File diff suppressed because it is too large
+ 6 - 0
draw_states.c


+ 6 - 0
hexagon.c

@@ -17,6 +17,11 @@ int AddIn_main(int isAppli, unsigned short OptionNum)
 	//rand initialisation
 	//rand initialisation
     srand(RTC_GetTicks());
     srand(RTC_GetTicks());
 
 
+    // Key init
+    data.shift_latch_value = 0;
+    data.alpha_latch_value = 0;
+
+
     switch_to_state(TITLE, &data);
     switch_to_state(TITLE, &data);
 
 
 
 
@@ -30,6 +35,7 @@ int AddIn_main(int isAppli, unsigned short OptionNum)
         }
         }
         frame++;
         frame++;
 
 
+
         update(&data);
         update(&data);
         draw(&data);
         draw(&data);
 
 

+ 3 - 3
init_states.c

@@ -33,7 +33,7 @@ void init_game(Game_Data *data)
 	data->cam.cX = 64;
 	data->cam.cX = 64;
 	data->cam.cY = 32;
 	data->cam.cY = 32;
 	data->cam.angle = 0;
 	data->cam.angle = 0;
-	data->cam.speed = 0.0;
+	data->cam.speed = 1.5;
 	data->cam.zoom = 0.0;
 	data->cam.zoom = 0.0;
 
 
 	data->nb_lines = 6;
 	data->nb_lines = 6;
@@ -52,7 +52,7 @@ void init_title(Game_Data *data)
 	data->cam.cY = 32;
 	data->cam.cY = 32;
 	data->cam.angle = 0;
 	data->cam.angle = 0;
 	data->cam.speed = 1;
 	data->cam.speed = 1;
-	data->cam.zoom = 32;
+	data->cam.zoom = 24;
 
 
 	data->nb_lines = 6;
 	data->nb_lines = 6;
 	data->line_transition.counter = 0;
 	data->line_transition.counter = 0;
@@ -71,7 +71,7 @@ void init_menu(Game_Data *data)
 	data->cam.cY = 64;
 	data->cam.cY = 64;
 	data->cam.angle = 0;
 	data->cam.angle = 0;
 	data->cam.speed = 0;
 	data->cam.speed = 0;
-	data->cam.zoom = 16;
+	data->cam.zoom = 48;
 
 
 	data->nb_lines = 6;
 	data->nb_lines = 6;
 	data->line_transition.counter = 0;
 	data->line_transition.counter = 0;

BIN
sprites/Title.png


+ 7 - 0
states.c

@@ -1,6 +1,12 @@
 #include "states.h"
 #include "states.h"
 
 
 State current_state = GAME;
 State current_state = GAME;
+
+static void key_latch_update(Game_Data* data) {
+	data->shift_latch_value = KeyDown(K_SHIFT);
+	data->alpha_latch_value = KeyDown(K_ALPHA);
+}
+
 void switch_to_state(State new_state, Game_Data *data)
 void switch_to_state(State new_state, Game_Data *data)
 {
 {
 	switch (new_state)
 	switch (new_state)
@@ -37,6 +43,7 @@ void update(Game_Data *data)
 			update_game_over(data);
 			update_game_over(data);
 		break;
 		break;
 	}
 	}
+	key_latch_update(data);
 }
 }
 void draw(Game_Data *data)
 void draw(Game_Data *data)
 {
 {

+ 3 - 0
struct.h

@@ -98,6 +98,9 @@ struct Game_Data{
 	Level *level;
 	Level *level;
 
 
 	Camera cam;
 	Camera cam;
+
+	unsigned char shift_latch_value;
+	unsigned char alpha_latch_value;
 };
 };
 
 
 #endif
 #endif

+ 8 - 3
update_states.c

@@ -7,7 +7,7 @@ void update_title(Game_Data *data)
 	data->current_time = RTC_GetTicks();
 	data->current_time = RTC_GetTicks();
 	data->chrono_time += (data->current_time - data->last_time)/ 128.;
 	data->chrono_time += (data->current_time - data->last_time)/ 128.;
 
 
-	if(KeyDown(K_SHIFT)) {
+	if(KeyDown(K_SHIFT) && data->shift_latch_value == 0) {
 		switch_to_state(MENU, data);
 		switch_to_state(MENU, data);
 	}
 	}
 
 
@@ -55,6 +55,11 @@ void update_game(Game_Data *data)
 		data->player_angle+=15;
 		data->player_angle+=15;
 	}
 	}
 
 
+	if(KeyDown(K_ALPHA) && data->alpha_latch_value == 0) {
+		switch_to_state(MENU, data);
+	}
+
+
 	if(KeyDown(K_PLUS) && data->line_transition.counter == 0)
 	if(KeyDown(K_PLUS) && data->line_transition.counter == 0)
 	{
 	{
 		data->line_transition.counter = 10;
 		data->line_transition.counter = 10;
@@ -86,10 +91,10 @@ void update_menu(Game_Data *data)
 	data->current_time = RTC_GetTicks();
 	data->current_time = RTC_GetTicks();
 	data->chrono_time += (data->current_time - data->last_time)/ 128.;
 	data->chrono_time += (data->current_time - data->last_time)/ 128.;
 
 
-	if(KeyDown(K_SHIFT)) {
+	if(KeyDown(K_SHIFT) && data->shift_latch_value == 0) {
 		switch_to_state(GAME, data);
 		switch_to_state(GAME, data);
 	}
 	}
-	if(KeyDown(K_ALPHA)) {
+	if(KeyDown(K_ALPHA) && data->alpha_latch_value == 0) {
 		switch_to_state(TITLE, data);
 		switch_to_state(TITLE, data);
 	}
 	}
 
 

Some files were not shown because too many files changed in this diff