#include<graphics.h>
#include<conio.h>
#include<stdlib.h>
#include<dos.h>
#include<alloc.h>
main()
{
int gd = DETECT, gm, area, temp1, temp2, left = 25, top = 75;
void far *p;
initgraph(&gd,&gm,"C:\\TurboC3\\BGI");
rectangle(25,75,100,100);
int sz=imagesize(25,75,100,100);
p=farmalloc(sz);
getch();
temp1 = 200;
temp2 = 200;
getimage(left, top, left + 100, top + 100, p);
putimage(left, top, p, XOR_PUT);
getch();
putimage(temp1 , temp2, p, XOR_PUT);
getch();
closegraph();
return 0;
}
每当我执行上面的代码时,编译器卡住并且窗口挂起。我不知道如何正确使用getimage()
和putimage()
。我想在c中设计俄罗斯方块,所以首先要掌握这些功能
答案 0 :(得分:0)
您没有为图像分配足够的内存,
sz=imagesize(25,75,100,100);
p=farmalloc(sz);
...
getimage(left, top, left + 100, top + 100, p);
我建议使用它来获取图像大小
sz=imagesize(left, top, left + 100, top + 100);
使用与getimage()
相同的参数。