Banjo API 1.0.0-rc.2
Low-level C99 game development API
Loading...
Searching...
No Matches
physics_kinematics.c File Reference
#include <banjo/app.h>
#include <banjo/main.h>
#include <banjo/draw.h>
#include <banjo/event.h>
#include <banjo/log.h>
#include <banjo/physics_2d.h>
#include <banjo/pixel.h>
#include <banjo/system.h>
#include <banjo/time.h>
#include <banjo/vec.h>
#include <banjo/window.h>
#include <stdlib.h>
Include dependency graph for physics_kinematics.c:

Go to the source code of this file.

Macros

#define SCREEN_WIDTH   800
#define SCREEN_HEIGHT   600
#define FB_PIXEL_MODE   BJ_PIXEL_MODE_XRGB8888
#define BALLS_LEN   1000
#define BALLS_RADIUS   BJ_F(3.0)
#define GRAVITY   BJ_F(50.0)

Functions

static void reset_ball (size_t at)
static void initialize_balls ()
static void update (bj_real dt)
static void draw (bj_bitmap *framebuffer)
static void on_draw (struct bj_window *w, struct bj_render_target *target, const struct bj_rect *dirty, void *user_data)
static void * setup (struct bj_app *app, void *init_data)
static void fixed_step (struct bj_app *app, struct bj_tick_info tick, void *user_data)
static void step (struct bj_app *app, struct bj_tick_info tick, void *user_data)
static void teardown (struct bj_app *app, void *user_data)
int main (int argc, char *argv[])

Variables

bj_windowwindow = 0
struct { 
bj_vec2 initial_velocity
bj_vec2 position
uint32_t color
double time_alive
balls [1000]
bj_vec2 gravity
bj_vec2 initial_position

Macro Definition Documentation

◆ BALLS_LEN

#define BALLS_LEN   1000
Examples
physics_kinematics.c.

Definition at line 41 of file physics_kinematics.c.

Referenced by draw(), initialize_balls(), and update().

◆ BALLS_RADIUS

#define BALLS_RADIUS   BJ_F(3.0)
Examples
physics_kinematics.c.

Definition at line 42 of file physics_kinematics.c.

Referenced by draw(), initialize_balls(), and update().

◆ FB_PIXEL_MODE

◆ GRAVITY

#define GRAVITY   BJ_F(50.0)
Examples
physics_kinematics.c.

Definition at line 43 of file physics_kinematics.c.

Referenced by initialize_balls().

◆ SCREEN_HEIGHT

#define SCREEN_HEIGHT   600

◆ SCREEN_WIDTH

#define SCREEN_WIDTH   800
Examples
physics_kinematics.c, and physics_particle.c.

Definition at line 32 of file physics_kinematics.c.

Referenced by setup(), setup(), update(), and update_projection().

Function Documentation

◆ draw()

void draw ( bj_bitmap * framebuffer)
static

Definition at line 139 of file physics_kinematics.c.

◆ fixed_step()

void fixed_step ( struct bj_app * app,
struct bj_tick_info tick,
void * user_data )
static

Definition at line 181 of file physics_kinematics.c.

◆ initialize_balls()

void initialize_balls ( )
static
Examples
physics_kinematics.c.

Definition at line 88 of file physics_kinematics.c.

Referenced by setup().

◆ main()

int main ( int argc,
char * argv[] )

Definition at line 202 of file physics_kinematics.c.

◆ on_draw()

void on_draw ( struct bj_window * w,
struct bj_render_target * target,
const struct bj_rect * dirty,
void * user_data )
static

Definition at line 150 of file physics_kinematics.c.

◆ reset_ball()

void reset_ball ( size_t at)
static
Examples
physics_kinematics.c, and pong.c.

Definition at line 64 of file physics_kinematics.c.

Referenced by initialize_balls(), setup(), update(), and update().

◆ setup()

void * setup ( struct bj_app * app,
void * init_data )
static

Definition at line 160 of file physics_kinematics.c.

◆ step()

void step ( struct bj_app * app,
struct bj_tick_info tick,
void * user_data )
static

Definition at line 186 of file physics_kinematics.c.

◆ teardown()

void teardown ( struct bj_app * app,
void * user_data )
static

Definition at line 196 of file physics_kinematics.c.

◆ update()

void update ( bj_real dt)
static
Examples
physics_kinematics.c, and pong.c.

Definition at line 106 of file physics_kinematics.c.

Referenced by fixed_step(), and step().

Variable Documentation

◆ [struct]

struct { ... } balls[ 1000 ]
Examples
physics_kinematics.c.

Referenced by draw(), reset_ball(), and update().

◆ gravity

bj_vec2 gravity
Examples
physics_kinematics.c.

Definition at line 57 of file physics_kinematics.c.

Referenced by bj_apply_gravity_2d(), initialize_balls(), and update().

◆ initial_position

bj_vec2 initial_position
Examples
physics_kinematics.c.

Definition at line 58 of file physics_kinematics.c.

Referenced by initialize_balls(), and update().

◆ window

bj_window* window = 0

Definition at line 35 of file physics_kinematics.c.