diff options
-rw-r--r-- | ball.c | 20 | ||||
-rw-r--r-- | glpong.c | 15 | ||||
-rw-r--r-- | glpong.h | 7 |
3 files changed, 17 insertions, 25 deletions
@@ -57,9 +57,9 @@ GLPong_BallAdd(Ball_t ** balls) { newball->y = 100.0f; newball->xv = 2.0f; newball->yv = 2.0f; - newball->r = rand() % 255; - newball->g = rand() % 255; - newball->b = rand() % 255; + newball->r = (GLubyte)(rand() % 255); + newball->g = (GLubyte)(rand() % 255); + newball->b = (GLubyte)(rand() % 255); newball->a = SDL_ALPHA_OPAQUE; *balls = newball; @@ -71,20 +71,6 @@ GLPong_BallAdd(Ball_t ** balls) { } void -GLPong_BallDelete(Ball_t * from, Ball_t * ball) { - Ball_t * temp = NULL; - while (from) { - if (from == ball) { - temp = ball; - from->next = ball->next; - free(ball); - break; - } - from = from->next; - } -} - -void GLPong_BallDeleteAll(Ball_t * list) { if (list) { GLPong_BallDeleteAll(list->next); @@ -59,6 +59,9 @@ int main(int argc, char * argv[]) { case GLPONG_ADDBALL: /* add another ball */ GLPong_BallAdd(&GLPong.balls); break; + case GLPONG_DELETEBALL: +/* GLPong_BallDelete(GLPong.balls, GLPong.balls);*/ + break; } GLPong_BallMoveAll(&GLPong.balls); @@ -137,10 +140,10 @@ GLPong_Init(GLPong_t * GLPong) { glClearColor(0.0f, 0.0f, 0.0f, 0.0f); - printf("OpenGL Vendor: %s\n", glGetString(GL_VENDOR)); - printf("OpenGL Renderer: %s\n", glGetString(GL_RENDERER)); - printf("OpenGL Version: %s\n", glGetString(GL_VERSION)); - printf("OpenGL Extensions: %s\n", glGetString(GL_EXTENSIONS)); + printf("OpenGL Vendor: %s\n", (const char *)glGetString(GL_VENDOR)); + printf("OpenGL Renderer: %s\n", (const char *)glGetString(GL_RENDERER)); + printf("OpenGL Version: %s\n", (const char *)glGetString(GL_VERSION)); + printf("OpenGL Extensions: %s\n", (const char *)glGetString(GL_EXTENSIONS)); ball_texture = SDL_GL_NPOTSurfaceToTexture(temp, NULL, NULL); SDL_FreeSurface(temp); @@ -168,7 +171,9 @@ GLPong_HandleEvents(void) { return GLPONG_EXIT; } if (Event.type == SDL_KEYDOWN) { - if (Event.key.keysym.sym == SDLK_ESCAPE) { + if (Event.key.keysym.sym == SDLK_d) { + return GLPONG_DELETEBALL; + } else if (Event.key.keysym.sym == SDLK_ESCAPE) { return GLPONG_EXIT; } else if (Event.key.keysym.sym == SDLK_SPACE) { return GLPONG_ADDBALL; @@ -10,9 +10,10 @@ #define GLPONG_WIDTH 640.0f #define GLPONG_HEIGHT 480.0f -#define GLPONG_NOACTION 0 -#define GLPONG_EXIT 1 -#define GLPONG_ADDBALL 2 +#define GLPONG_NOACTION 0 +#define GLPONG_EXIT 1 +#define GLPONG_ADDBALL 2 +#define GLPONG_DELETEBALL 3 #if SDL_BYTEORDER == SDL_BIG_ENDIAN #define RMASK 0xff000000 |