Better width and height handle + border bounce or pass through
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include "SDL.h"
|
||||
|
||||
#include <math.h>
|
||||
|
||||
/*
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
@@ -33,7 +33,8 @@
|
||||
/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// ///
|
||||
|
||||
|
||||
|
||||
#define WIDTH 640
|
||||
#define HEIGHT 480
|
||||
|
||||
|
||||
Uint32 getpixel(SDL_Surface *surface,int x,int y)
|
||||
@@ -111,7 +112,8 @@ int main(int argc, char * argv[])
|
||||
}
|
||||
#define SDL_VIDEO_FLAGS (SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_ANYFORMAT)
|
||||
|
||||
screen = SDL_SetVideoMode(640, 480, 24, SDL_VIDEO_FLAGS);
|
||||
//screen = SDL_SetVideoMode(640, 480, 24, SDL_VIDEO_FLAGS);
|
||||
screen = SDL_SetVideoMode(WIDTH, HEIGHT, 24, SDL_VIDEO_FLAGS);
|
||||
// screen = SDL_SetVideoMode(270, 16, 24, SDL_VIDEO_FLAGS);
|
||||
|
||||
printf("Mode video: %dx%dx%d\n", screen->w, screen->h,
|
||||
@@ -119,8 +121,10 @@ int main(int argc, char * argv[])
|
||||
//SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0xff, 0xff, 0xff));
|
||||
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 254, 254, 254));
|
||||
|
||||
i=320;
|
||||
j=240;
|
||||
//i=320;
|
||||
//j=240;
|
||||
i = floor(WIDTH / 2);
|
||||
j = floor(HEIGHT / 2);
|
||||
direction=1;
|
||||
//for (j = 0; j < screen->h; j++) {
|
||||
//for (i = 0; i < screen->w; i++) {
|
||||
@@ -281,28 +285,71 @@ while (0!=1) {
|
||||
putPixel(screen, i, j, SDL_MapRGB(screen->format, nr, ng, nb));
|
||||
//putPixel(screen, i, j, SDL_MapRGB(screen->format, 0xfe, 0, 0));
|
||||
|
||||
// BORDER BOUNCE //
|
||||
switch(direction){
|
||||
case 0:
|
||||
j=j-1;
|
||||
if (j<0)
|
||||
j=479;
|
||||
//j=479;
|
||||
j = 0;
|
||||
break;
|
||||
case 1:
|
||||
i=i+1;
|
||||
if (i>639)
|
||||
//if (i>639)
|
||||
if ( i > ( WIDTH - 1 ) )
|
||||
//i=0;
|
||||
i = WIDTH -1;
|
||||
break;
|
||||
case 2:
|
||||
j=j+1;
|
||||
//if (j>479)
|
||||
if ( j > ( HEIGHT - 1 ) )
|
||||
//j=0;
|
||||
j = HEIGHT -1;
|
||||
break;
|
||||
case 3:
|
||||
i=i-1;
|
||||
if (i<0)
|
||||
//i=639;
|
||||
//i = WIDTH - 1;
|
||||
i = 0;
|
||||
break;
|
||||
direction = ( direction + 2 ) % 4;
|
||||
}
|
||||
// END - BORDER BOUNCE //
|
||||
|
||||
|
||||
// BORDER PASS THROUGH //
|
||||
/*
|
||||
switch(direction){
|
||||
case 0:
|
||||
j=j-1;
|
||||
if (j<0)
|
||||
//j=479;
|
||||
j = HEIGHT - 1;
|
||||
break;
|
||||
case 1:
|
||||
i=i+1;
|
||||
//if (i>639)
|
||||
if ( i > ( WIDTH - 1 ) )
|
||||
i=0;
|
||||
break;
|
||||
case 2:
|
||||
j=j+1;
|
||||
if (j>479)
|
||||
//if (j>479)
|
||||
if ( j > ( HEIGHT - 1 ) )
|
||||
j=0;
|
||||
break;
|
||||
case 3:
|
||||
i=i-1;
|
||||
if (i<0)
|
||||
i=639;
|
||||
//i=639;
|
||||
i = WIDTH - 1;
|
||||
break;
|
||||
}
|
||||
*/
|
||||
// END - BORDER PASS THROUGH //
|
||||
|
||||
//SDL_UnlockSurface(screen);
|
||||
SDL_Flip(screen);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user