1515#define K_4 isKeyPressed(KEY_NSPIRE_4)
1616#define K_6 isKeyPressed(KEY_NSPIRE_6)
1717
18+ #define frame_skip 2
19+
1820unsigned short is_in_air = 1 ;
1921unsigned short is_in_flip = 0 ;
2022Point player_point = {16 ,16 };
21- signed short gravity = 2 ;
23+ signed short gravity = 1 ;
2224Point checkpoint = {16 ,16 };
2325Rect src_rect ;
26+ unsigned short frame_counter = 0 ;
2427
2528void draw_tile (unsigned short * tileset , int tile_num , int x , int y )
2629{
@@ -132,13 +135,12 @@ int main()
132135 initBuffering ();
133136 while (keep_playing )
134137 {
135- clearBufferB ();
136138 prev_x = player_point .x ;
137139 prev_y = player_point .y ;
138140 if (K_7 )
139- player_point .x -= 2 ;
141+ player_point .x -= 1 ;
140142 if (K_9 )
141- player_point .x += 2 ;
143+ player_point .x += 1 ;
142144 if (K_8 )
143145 if (!is_in_air )
144146 flip_player ();
@@ -155,13 +157,33 @@ int main()
155157 player_point .x = prev_x ;
156158 if (!can_move_y ())
157159 player_point .y = prev_y ;
158- draw_tile_map ();
159- if (gravity == 2 )
160- drawSpritePart (image_VVVVVV , player_point .x , player_point .y , & player_sprite );
161- if (gravity == -2 )
162- drawSpritePart (image_VVVVVV , player_point .x , player_point .y , & inverted_player_sprite );
163- updateScreen ();
164- //sleep(10);
160+ if (is_classic )
161+ {
162+ if (frame_counter >= frame_skip )
163+ {
164+ clearBufferB ();
165+ draw_tile_map ();
166+ if (gravity == 1 )
167+ drawSpritePart (image_VVVVVV , player_point .x , player_point .y , & player_sprite );
168+ if (gravity == -1 )
169+ drawSpritePart (image_VVVVVV , player_point .x , player_point .y , & inverted_player_sprite );
170+ updateScreen ();
171+ frame_counter = 0 ;
172+ }
173+ else
174+ frame_counter ++ ;
175+ }
176+ else
177+ {
178+ clearBufferB ();
179+ draw_tile_map ();
180+ if (gravity == 1 )
181+ drawSpritePart (image_VVVVVV , player_point .x , player_point .y , & player_sprite );
182+ if (gravity == -1 )
183+ drawSpritePart (image_VVVVVV , player_point .x , player_point .y , & inverted_player_sprite );
184+ updateScreen ();
185+ frame_counter = 0 ;
186+ }
165187 }
166188 deinitBuffering ();
167189}
0 commit comments