clang-format on /apps/demos/bunnymark files
This commit is contained in:
		| @@ -6,108 +6,105 @@ | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
|  | ||||
| #define GRAY  ((Color){ 130,130,130,255 }) | ||||
| #define BLACK ((Color){ 0,0,0,255 }) | ||||
| #define GRAY ((Color){130, 130, 130, 255}) | ||||
| #define BLACK ((Color){0, 0, 0, 255}) | ||||
|  | ||||
| #define LEFT_CLICK_ADD 20 | ||||
| #define RIGHT_CLICK_ADD 500 | ||||
|  | ||||
|  | ||||
| void handle_input(void){ | ||||
|  | ||||
| void handle_input(void) | ||||
| { | ||||
|     State *state = ctx.udata; | ||||
|     if(ctx.input.mouse_state == 1 && ctx.input.mouse_window_position.y > 60){ // Left click | ||||
|     if (ctx.input.mouse_state == 1 && ctx.input.mouse_window_position.y > 60) | ||||
|     { // Left click | ||||
|         for (int i = 0; i < LEFT_CLICK_ADD; i++) | ||||
|         { | ||||
|             if (state->bunniesCount < MAX_BUNNIES) | ||||
|             { | ||||
|                 if (state->bunniesCount < MAX_BUNNIES) | ||||
|                 { | ||||
|                     state->bunnies[state->bunniesCount].position = (Vec2){ | ||||
|                                                                           (float)ctx.input.mouse_window_position.x, | ||||
|                                                                           (float)ctx.input.mouse_window_position.y | ||||
|                                                                          }; | ||||
|                     state->bunnies[state->bunniesCount].speed.x = (float)(rand() % 500 - 250) / 60.0; | ||||
|                     state->bunnies[state->bunniesCount].speed.y = (float)(rand() % 500 - 250) / 60.0; | ||||
|                     state->bunnies[state->bunniesCount].color   = (Color){ | ||||
|                                                                             rand() % 190 + 50, | ||||
|                                                                             rand() % 160 + 80, | ||||
|                                                                             rand() % 140 + 100, | ||||
|                                                                             255 | ||||
|                                                                          }; | ||||
|                     state->bunniesCount++; | ||||
|                 } | ||||
|                 state->bunnies[state->bunniesCount].position = | ||||
|                     (Vec2){(float)ctx.input.mouse_window_position.x, (float)ctx.input.mouse_window_position.y}; | ||||
|                 state->bunnies[state->bunniesCount].speed.x = (float)(rand() % 500 - 250) / 60.0; | ||||
|                 state->bunnies[state->bunniesCount].speed.y = (float)(rand() % 500 - 250) / 60.0; | ||||
|                 state->bunnies[state->bunniesCount].color = | ||||
|                     (Color){rand() % 190 + 50, rand() % 160 + 80, rand() % 140 + 100, 255}; | ||||
|                 state->bunniesCount++; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     if(ctx.input.mouse_state == 4){ // Right click | ||||
|  | ||||
|     if (ctx.input.mouse_state == 4) | ||||
|     { // Right click | ||||
|         for (int i = 0; i < RIGHT_CLICK_ADD; i++) | ||||
|         { | ||||
|             if (state->bunniesCount < MAX_BUNNIES) | ||||
|             { | ||||
|                 if (state->bunniesCount < MAX_BUNNIES) | ||||
|                 { | ||||
|                     state->bunnies[state->bunniesCount].position = (Vec2){ | ||||
|                                                                           (float)ctx.input.mouse_window_position.x, | ||||
|                                                                           (float)ctx.input.mouse_window_position.y | ||||
|                                                                          }; | ||||
|                     state->bunnies[state->bunniesCount].speed.x = (float)(rand() % 500 - 250) / 60.0; | ||||
|                     state->bunnies[state->bunniesCount].speed.y = (float)(rand() % 500 - 250) / 60.0; | ||||
|                     state->bunnies[state->bunniesCount].color   = (Color){ | ||||
|                                                                             rand() % 190 + 50, | ||||
|                                                                             rand() % 160 + 80, | ||||
|                                                                             rand() % 140 + 100, | ||||
|                                                                             255 | ||||
|                                                                          }; | ||||
|                     state->bunniesCount++; | ||||
|                 } | ||||
|                 state->bunnies[state->bunniesCount].position = | ||||
|                     (Vec2){(float)ctx.input.mouse_window_position.x, (float)ctx.input.mouse_window_position.y}; | ||||
|                 state->bunnies[state->bunniesCount].speed.x = (float)(rand() % 500 - 250) / 60.0; | ||||
|                 state->bunnies[state->bunniesCount].speed.y = (float)(rand() % 500 - 250) / 60.0; | ||||
|                 state->bunnies[state->bunniesCount].color = | ||||
|                     (Color){rand() % 190 + 50, rand() % 160 + 80, rand() % 140 + 100, 255}; | ||||
|                 state->bunniesCount++; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| void game_tick(void) { | ||||
| void game_tick(void) | ||||
| { | ||||
|     static char bunny_count_text[64]; | ||||
|     static char bunny_path[64] = "wabbit_alpha.png"; | ||||
|  | ||||
|     // State *state = ctx.udata; | ||||
|     if (ctx.initialization_needed) { // First tick, initalizing data | ||||
|     if (ctx.initialization_needed) | ||||
|     { // First tick, initalizing data | ||||
|         // Allocating State struct to store data there | ||||
|         if (!ctx.udata) ctx.udata = ccalloc(1, sizeof(State)); | ||||
|         if (!ctx.udata) | ||||
|             ctx.udata = ccalloc(1, sizeof(State)); | ||||
|         ((State *)ctx.udata)->bunniesCount = 0; | ||||
|     } | ||||
|  | ||||
|     State *state = ctx.udata; | ||||
|  | ||||
|     const double delta = (double)(ctx.delta_time) / 1000.0; // Receiving floating point delta value (diving by 1000 based on vibe) | ||||
|     const double delta = | ||||
|         (double)(ctx.delta_time) / 1000.0; // Receiving floating point delta value (diving by 1000 based on vibe) | ||||
|  | ||||
|     for (int i = 0; i < state->bunniesCount; i++){ | ||||
|               state->bunnies[i].position.x += state->bunnies[i].speed.x; | ||||
|               state->bunnies[i].position.y += state->bunnies[i].speed.y; | ||||
|     for (int i = 0; i < state->bunniesCount; i++) | ||||
|     { | ||||
|         state->bunnies[i].position.x += state->bunnies[i].speed.x; | ||||
|         state->bunnies[i].position.y += state->bunnies[i].speed.y; | ||||
|  | ||||
|               if (((state->bunnies[i].position.x + BUNNY_W/2) > ctx.window_w) || | ||||
|                   ((state->bunnies[i].position.x + BUNNY_W/2) < 0)) state->bunnies[i].speed.x *= -1; | ||||
|               if (((state->bunnies[i].position.y + BUNNY_H/2) > ctx.window_h) || | ||||
|                   ((state->bunnies[i].position.y + BUNNY_H/2 - 60) < 0)) state->bunnies[i].speed.y *= -1; | ||||
|         if (((state->bunnies[i].position.x + BUNNY_W / 2) > ctx.window_w) || | ||||
|             ((state->bunnies[i].position.x + BUNNY_W / 2) < 0)) | ||||
|             state->bunnies[i].speed.x *= -1; | ||||
|         if (((state->bunnies[i].position.y + BUNNY_H / 2) > ctx.window_h) || | ||||
|             ((state->bunnies[i].position.y + BUNNY_H / 2 - 60) < 0)) | ||||
|             state->bunnies[i].speed.y *= -1; | ||||
|     } | ||||
|  | ||||
|     handle_input(); | ||||
|  | ||||
|     // Clear window with Gray color (set the background color this way) | ||||
|     draw_rectangle((Rect){0,0, ctx.window_w, ctx.window_h}, GRAY); | ||||
|     draw_rectangle((Rect){0, 0, ctx.window_w, ctx.window_h}, GRAY); | ||||
|  | ||||
|     for (int i = 0; i < state->bunniesCount; i++){ // Draw each bunny based on their position and color, also scale accordingly | ||||
|         m_sprite( | ||||
|                 m_set(path, bunny_path), | ||||
|                 m_set(rect, ((Rect){ .x = (int)state->bunnies[i].position.x, .y = (int)state->bunnies[i].position.y, | ||||
|                                      .w = BUNNY_W * SPRITE_SCALE, .h = BUNNY_H * SPRITE_SCALE | ||||
|                                    })), | ||||
|                 m_opt(color, (state->bunnies[i].color)), | ||||
|                 m_opt(stretch, true), | ||||
|             ); | ||||
|     for (int i = 0; i < state->bunniesCount; i++) | ||||
|     { // Draw each bunny based on their position and color, also scale accordingly | ||||
|         m_sprite(m_set(path, bunny_path), | ||||
|                  m_set(rect, ((Rect){.x = (int)state->bunnies[i].position.x, | ||||
|                                      .y = (int)state->bunnies[i].position.y, | ||||
|                                      .w = BUNNY_W * SPRITE_SCALE, | ||||
|                                      .h = BUNNY_H * SPRITE_SCALE})), | ||||
|                  m_opt(color, (state->bunnies[i].color)), m_opt(stretch, true), ); | ||||
|     } | ||||
|     // Formatting text to display, might want to add FPS here too | ||||
|     snprintf(bunny_count_text, 64, "Bunnies: %d", state->bunniesCount); | ||||
|  | ||||
|     draw_text(bunny_count_text, (Vec2){ 0, 0 }, 40, BLACK, "/fonts/kenney-pixel.ttf"); | ||||
|     draw_text(bunny_count_text, (Vec2){0, 0}, 40, BLACK, "/fonts/kenney-pixel.ttf"); | ||||
| } | ||||
|  | ||||
|  | ||||
| void game_end(void) { | ||||
| void game_end(void) | ||||
| { | ||||
|     State *state = ctx.udata; | ||||
|  | ||||
|     // Free state when game ends | ||||
|   | ||||
| @@ -3,23 +3,23 @@ | ||||
|  | ||||
| #include "twn_game_api.h" | ||||
|  | ||||
| #define MAX_BUNNIES        50000    // 50K bunnies limit | ||||
| #define MAX_BUNNIES 100000 // 100K bunnies limit | ||||
| #define BUNNY_W 26 | ||||
| #define BUNNY_H 37 | ||||
| #define SPRITE_SCALE 1 | ||||
|  | ||||
| typedef struct Bunny { | ||||
| typedef struct Bunny | ||||
| { | ||||
|     Vec2 position; | ||||
|     Vec2 speed; | ||||
|     Color color; | ||||
| } Bunny; | ||||
|  | ||||
| typedef struct State { | ||||
| typedef struct State | ||||
| { | ||||
|     Bunny bunnies[MAX_BUNNIES]; | ||||
|     int bunniesCount; | ||||
|     InputState mouse_state; | ||||
| } State; | ||||
|  | ||||
|  | ||||
|  | ||||
| #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user