Better width and height handle + border bounce or pass through
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include "SDL.h"
|
#include "SDL.h"
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
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)
|
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)
|
#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);
|
// screen = SDL_SetVideoMode(270, 16, 24, SDL_VIDEO_FLAGS);
|
||||||
|
|
||||||
printf("Mode video: %dx%dx%d\n", screen->w, screen->h,
|
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, 0xff, 0xff, 0xff));
|
||||||
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 254, 254, 254));
|
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 254, 254, 254));
|
||||||
|
|
||||||
i=320;
|
//i=320;
|
||||||
j=240;
|
//j=240;
|
||||||
|
i = floor(WIDTH / 2);
|
||||||
|
j = floor(HEIGHT / 2);
|
||||||
direction=1;
|
direction=1;
|
||||||
//for (j = 0; j < screen->h; j++) {
|
//for (j = 0; j < screen->h; j++) {
|
||||||
//for (i = 0; i < screen->w; i++) {
|
//for (i = 0; i < screen->w; i++) {
|
||||||
@@ -280,29 +284,72 @@ while (0!=1) {
|
|||||||
}
|
}
|
||||||
putPixel(screen, i, j, SDL_MapRGB(screen->format, nr, ng, nb));
|
putPixel(screen, i, j, SDL_MapRGB(screen->format, nr, ng, nb));
|
||||||
//putPixel(screen, i, j, SDL_MapRGB(screen->format, 0xfe, 0, 0));
|
//putPixel(screen, i, j, SDL_MapRGB(screen->format, 0xfe, 0, 0));
|
||||||
|
|
||||||
|
// BORDER BOUNCE //
|
||||||
switch(direction){
|
switch(direction){
|
||||||
case 0:
|
case 0:
|
||||||
j=j-1;
|
j=j-1;
|
||||||
if (j<0)
|
if (j<0)
|
||||||
j=479;
|
//j=479;
|
||||||
|
j = 0;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
i=i+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;
|
i=0;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
j=j+1;
|
j=j+1;
|
||||||
if (j>479)
|
//if (j>479)
|
||||||
|
if ( j > ( HEIGHT - 1 ) )
|
||||||
j=0;
|
j=0;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
i=i-1;
|
i=i-1;
|
||||||
if (i<0)
|
if (i<0)
|
||||||
i=639;
|
//i=639;
|
||||||
|
i = WIDTH - 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
// END - BORDER PASS THROUGH //
|
||||||
|
|
||||||
//SDL_UnlockSurface(screen);
|
//SDL_UnlockSurface(screen);
|
||||||
SDL_Flip(screen);
|
SDL_Flip(screen);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user