home *** CD-ROM | disk | FTP | other *** search
- #include <math.h>
- #include <alloc.h>
- #include "move.h"
-
- void move_rect(rect src, int sh, int dir)
- {
- int sx = 0;
- int sy = 0;
- if(dir == 0) // VERTICAL
- sy = sh;
- else
- sx = sh;
- void* im = (void*)malloc(imagesize(0, 0, src.width(), 0)); // image
- register int i;
- if(sh < 0)
- {
- for(i = 0; i < src.height(); i++)
- {
- getimage(src.origin.X, src.origin.Y + i,
- src.corner.X,
- src.origin.Y + i, im);
- putimage(src.origin.X + sx, src.origin.Y + i + sy, im, 0);
- }
- }
- else
- {
- for(i = src.height() - 1; i >= 0; i--)
- {
- getimage(src.origin.X, src.origin.Y + i,
- src.corner.X,
- max(src.origin.Y + i, src.origin.Y),
- im);
- putimage(src.origin.X + sx, src.origin.Y + i + sy, im, 0);
- }
- }
- delete im;
- }
-
- //////////////////////
- /*
- void main()
- {
- int gdriver = DETECT, gmode;
- initgraph(&gdriver, &gmode, "..\\BGI");
-
- setfillstyle(SOLID_FILL, RED);
- bar(0, 0, 500, 300);
- line(0, 0, 500, 300);
- line(0, 300, 500, 0);
- rectangle(16, 16, 32, 32);
-
- move_rect(rect(0, 0, 500, 300), 100, 0);
- move_rect(rect(0, 100, 500, 400), 100, 1);
- }
- */
-