test/snake.c

changeset 84
e4116b4b5774
parent 83
f7ce0db6f72b
child 85
f51eec4e7ccb
--- a/test/snake.c	Sat Apr 19 12:18:43 2025 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- * Copyright 2023 Mike Becker. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *   1. Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *
- *   2. Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "ascension/core.h"
-#include <ascension/ui.h>
-
-#include <cx/printf.h>
-
-static void update_fps_counter(AscSceneNode *node) {
-    static uint64_t last_fps = 0;
-    static uint64_t debounce = ASC_NANOS_SECOND - 1;
-    debounce += asc_context.frame_nanos;
-    // only update text every second
-    if (debounce >= ASC_NANOS_SECOND) {
-        debounce = 0;
-        uint64_t fps = ASC_NANOS_SECOND;
-        fps /= asc_context.frame_nanos;
-        if (fps != last_fps) {
-            last_fps = fps;
-            asc_text_printf(node, "%"PRIu64" FPS", fps);
-        }
-    }
-    // tie to bottom right of the screen
-    if (asc_test_flag(node->flags, ASC_SCENE_NODE_GRAPHICS_UPDATED)
-        || asc_active_window->resized) {
-        asc_vec2i bottom_right = asc_active_window->dimensions;
-        asc_vec2i scale = asc_get_scale2d(node);
-        asc_set_position2d(
-                node,
-                bottom_right.x - scale.width - 10,
-                bottom_right.y - scale.height - 10
-        );
-    }
-}
-
-static void create_fps_counter(void) {
-    asc_font(ASC_FONT_REGULAR, 12);
-    asc_ink_rgba(128, 128, 128, 196);
-    AscSceneNode *node = asc_text();
-    asc_scene_add_behavior(node, update_fps_counter);
-    asc_add_ui_node(node);
-}
-
-static void create_score_counter(void) {
-    asc_font(ASC_FONT_BOLD, 16);
-    asc_ink_rgb(0, 255, 0);
-    AscSceneNode* node = asc_text(
-            .x = 10, .y = 10,
-            .text = "Score: 0"
-    );
-    asc_add_ui_node(node);
-}
-
-int main(int argc, char** argv) {
-    asc_context_initialize();
-    if (asc_has_error()) {
-        SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR,
-                "Fatal Error",asc_get_error(),NULL);
-        return 1;
-    }
-
-    // create window
-    AscWindowSettings settings;
-    asc_window_settings_init_defaults(&settings);
-    settings.title = "Snake";
-    asc_window_initialize(0, &settings);
-
-    // create UI elements
-    create_fps_counter();
-    create_score_counter();
-
-    // Main Loop
-    do {
-        // quit application on any error
-        if (asc_has_error()) {
-            SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR,
-                    "Fatal Error", asc_get_error(),
-                    asc_active_window->window);
-            asc_clear_error();
-            asc_context_quit();
-        }
-
-        // quit application on ESC key press
-        if (asc_key_pressed(ESCAPE)) {
-            asc_context_quit();
-        }
-    } while (asc_loop_next());
-
-    asc_context_destroy();
-    return 0;
-}
-

mercurial