You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.1 KiB
43 lines
1.1 KiB
/** @file boing.h
|
|
@author M. P. Hayes, UCECE
|
|
@date 24 August 2010
|
|
@brief Bouncing ball module
|
|
|
|
@defgroup boing Bouncing ball module
|
|
*/
|
|
#ifndef BOING_H
|
|
#define BOING_H
|
|
|
|
#include "tinygl.h"
|
|
|
|
/** Compass direction of ball. */
|
|
typedef enum dir {DIR_N, DIR_NE, DIR_E, DIR_SE,
|
|
DIR_S, DIR_SW, DIR_W, DIR_NW} boing_dir_t;
|
|
|
|
|
|
/** Structure defining state of ball. */
|
|
typedef struct state {tinygl_point_t pos; boing_dir_t dir;} boing_state_t;
|
|
|
|
|
|
/** Update the state of a ball bouncing off the edges of the display
|
|
@param state current state
|
|
@return new state. */
|
|
boing_state_t boing_update (boing_state_t state);
|
|
|
|
|
|
/** Reverse the direction of a ball
|
|
@param state current state
|
|
@return new state with direction reversed. */
|
|
boing_state_t boing_reverse (boing_state_t state);
|
|
|
|
|
|
/** Initialise the state of a ball
|
|
@param xstart x coordinate to start at
|
|
@param ystart y coordinate to start at
|
|
@param dir initial direction
|
|
@return state. */
|
|
boing_state_t boing_init (uint8_t xstart, uint8_t ystart, boing_dir_t dir);
|
|
|
|
|
|
#endif
|