这是我有问题的地方:
QiPan()/*棋盘上的各种图案*/
{
int size;
size=imagesize(11,11,20,20);
Qzz=(void *)malloc(size);
Lzz=(void *)malloc(size);
Rzz=(void *)malloc(size);
Xzz=(void *)malloc(size);
Dzz=(void *)malloc(size);
Mzz=(void *)malloc(size);
setfillstyle(5,6);/*墙*/
setcolor(WHITE);
rectangle(11,11,20,20);
floodfill(15,15,WHITE);
/*Qzz=(void *)malloc(size);*/
/*getimage(11,11,20,20,Qzz);*/
setfillstyle(1,WHITE);/*路*/
rectangle(21,11,30,20);
floodfill(25,15,WHITE);
/*Lzz=(void *)malloc(size);*/
/*getimage(21,11,30,20,Lzz);*/
rectangle(31,11,40,20);/*人*/
line(34,13,38,13);
line(36,12,36,15);
line(36,15,34,18);
line(36,15,38,18);
/*Rzz=(void *)malloc(size);*/
/*getimage(31,11,40,20,Rzz);*/
rectangle(41,11,50,20);/*箱子*/
setfillstyle(1,GREEN);
line(41,11,50,20);
line(41,20,50,11);
floodfill(42,15,WHITE);
floodfill(49,17,WHITE);
floodfill(46,12,WHITE);
floodfill(46,19,WHITE);
/*Xzz=(void *)malloc(size);*/
/*getimage(41,11,50,20,Xzz);*/
rectangle(51,11,60,20);/*到达目的地的箱子*/
setfillstyle(1,LIGHTRED);
line(51,11,60,20);
line(51,20,60,11);
floodfill(52,15,WHITE);
floodfill(59,17,WHITE);
floodfill(56,12,WHITE);
floodfill(56,19,WHITE);
/*Dzz=(void *)malloc(size);*/
/*getimage(51,11,60,20,Dzz);*/
rectangle(61,11,70,20);/*目的地*/
setfillstyle(1,LIGHTRED);
circle(65,15,4);
floodfill(65,15,WHITE);
/*Mzz=(void *)malloc(size);*/
getimage(11,11,20,20,Qzz);
getimage(21,11,30,20,Lzz);
getimage(31,11,40,20,Rzz);
getimage(41,11,50,20,Xzz);
getimage(51,11,60,20,Dzz);
getimage(61,11,70,20,Mzz);
cleardevice();
}
这些VOID指针声明了全局变量的,这时我应该已经把这几个不同的图都存在不同的内存处了吧,然后我再从文件中读出相关数据,就是下面的字符型的'1','2','3','4','5'......
DrawQM()
{
int i, j, m, n;
cleardevice();
setbkcolor(LIGHTGRAY);
/*setviewport(100,0,300,200,0);*/
QiPan();
for(i=0;i<20;i++)
{
for(j=0;j<20;j++)
{
m=10*j+1; n=10*i+1;
if(QM[i][j]=='1') putimage(m,n,Lzz,COPY_PUT);
if(QM[i][j]=='2') putimage(m,n,Xzz,COPY_PUT);
if(QM[i][j]=='3') putimage(m,n,Qzz,COPY_PUT);
if(QM[i][j]=='4') putimage(m,n,Mzz,COPY_PUT);
if(QM[i][j]=='5') putimage(m,n,Rzz,COPY_PUT);
if(QM[i][j]=='6') putimage(m,n,Dzz,COPY_PUT);
}
}
}
数据中'1'--'6'都有且只有1个,这时应该在屏幕上显示我之前存在内存中的不同的图形啊,但是我运行后怎么只有一种图形?就只有我最后画的那个"目的地"的图形!难道是我画了一个存了,再画一个保存的时候就把前一个图给覆盖了?