demo/snake/snake.c

changeset 279
97a1a7fb4f1a
parent 278
634fa2996d4e
equal deleted inserted replaced
278:634fa2996d4e 279:97a1a7fb4f1a
184 .color = ASC_RGB(1, 1, 1), 184 .color = ASC_RGB(1, 1, 1),
185 .font = asc_font(ASC_FONT_REGULAR, 12), 185 .font = asc_font(ASC_FONT_REGULAR, 12),
186 ); 186 );
187 asc_behavior_add(node, .func = fps_counter_update, .interval = asc_seconds(1)); 187 asc_behavior_add(node, .func = fps_counter_update, .interval = asc_seconds(1));
188 asc_behavior_add(node, fps_counter_tie_to_corner); 188 asc_behavior_add(node, fps_counter_tie_to_corner);
189 asc_behavior_pause_all_while_hidden(node); 189 asc_behavior_disable_all_while_hidden(node);
190 asc_ui_add_node(node); 190 asc_ui_add_node(node);
191 return node; 191 return node;
192 } 192 }
193 193
194 static void game_over_text_keep_centered(AscBehavior *behavior) { 194 static void game_over_text_keep_centered(AscBehavior *behavior) {
195 if (!behavior->unpaused && !asc_active_window->resized) return; 195 if (!behavior->reactivated && !asc_active_window->resized) return;
196 196
197 AscSceneNode *node = behavior->node; 197 AscSceneNode *node = behavior->node;
198 // center the "game over" text in the game field viewport 198 // center the "game over" text in the game field viewport
199 const asc_rect main_scene_viewport = MAIN_SCENE->camera.viewport; 199 const asc_rect main_scene_viewport = MAIN_SCENE->camera.viewport;
200 asc_scene_node_set_position2f(node, ASC_VEC2F( 200 asc_scene_node_set_position2f(node, ASC_VEC2F(
212 .alignment = ASC_TEXT_ALIGN_CENTER, 212 .alignment = ASC_TEXT_ALIGN_CENTER,
213 .centered = true, 213 .centered = true,
214 ); 214 );
215 215
216 asc_scene_node_hide(node); 216 asc_scene_node_hide(node);
217 asc_behavior_add(node, game_over_text_keep_centered, .pause_while_hidden = true); 217 asc_behavior_add(node, game_over_text_keep_centered, .disable_while_hidden = true);
218 asc_ui_add_node(node); 218 asc_ui_add_node(node);
219 219
220 return node; 220 return node;
221 } 221 }
222 222
484 484
485 // add behaviors 485 // add behaviors
486 asc_behavior_add(node, player_main_behavior, .always_enabled = true); 486 asc_behavior_add(node, player_main_behavior, .always_enabled = true);
487 asc_behavior_add(node, player_controls); 487 asc_behavior_add(node, player_controls);
488 asc_behavior_add(node, player_move); 488 asc_behavior_add(node, player_move);
489 asc_behavior_pause_all_while_hidden(node); 489 asc_behavior_disable_all_while_hidden(node);
490 490
491 return player; 491 return player;
492 } 492 }
493 493
494 static asc_rect main_scene_viewport_update(asc_vec2u window_size) { 494 static asc_rect main_scene_viewport_update(asc_vec2u window_size) {

mercurial