能打中吗?
#include"stdio.h"
#include"graphics.h"
#include"malloc"
int main()
{ int gdriver,gmode;
int arw[32]=
{10,20,10,70,30,60,50,60,40,90,60,90,70,60,90,60,110,45,90,30,,70,30,60,10,40,10,50,30,30,30,10,20};/*
飞机各顶点*/
int arw2[12]={10,450,10,470,30,470,30,450,20,440,10,450};/*子弹各顶点*/
gdriver=DETECT;
initgraph(&gdriver,&gmode);
setbkcolor(bule);
cleardevice();
setcolor(12);
drawpoly(16,arw);/*作飞机的图形*/
floodfull(9,19,12);/*对飞机填充颜色*/
drawpoly(6,arw2);/*作子弹图形*/
floodfull(9,449,12);/*对子弹填充颜色*/
size1=imagesize(9,9,100,110);
size2=imagesize(9,439,31,471);
buf1=malloc(size1);
buf2=malloc(size2);
getimage(9,9,100,110);
for(i=0;i<=500;i++)
{ putimage(10+i,10,buf1,COPY_PUT);
putimage(10+i,440-i*(340/500),buf2,COPY_PUT);
delay(3000);
cleardevice();
}
getch();
closegraph();
}
这是一个子弹打飞机的程序,其中错误甚多,给我完善一下吧!
[解决办法]
沙发
[解决办法]
看起来是循环之前的getimage有错误。至少缺少了buffer参数。
#include "malloc" 这是什么语法?
其他没发现~
[解决办法]
学习
[解决办法]
Try this.
#include <stdio.h>#include <conio.h>#include <graphics.h>int main(void){ int gdriver,gmode,size1,size2; void *buf1, *buf2; int i, errCode; int arw[32]= { 10,20,10,70,30,60,50,60,40,90,60,90,70,60,90,60, 110,45,90,30,70,30,60,10,40,10,50,30,30,30,10,20 };/*飞机各顶点*/ int arw2[12]= { 10,450,10,470,30,470,30,450,20,440,10,450 };/*子弹各顶点*/ gdriver=DETECT; /* registerbgidriver(EGAVGA_driver); */ initgraph(&gdriver,&gmode,""); errCode = graphresult(); /* Read result of initialization*/ if( errCode != grOk ){ /* Error occured during init */ printf(" Graphics System Error: %s\n", grapherrormsg( errCode ) ); getch(); exit(1); } setbkcolor(BLUE); cleardevice(); setcolor(12); /* setfillstyle(SOLID_FILL, 12); */ drawpoly(16,arw);/*作飞机的图形*/ floodfill(15,25,12);/*对飞机填充颜色*/ drawpoly(6,arw2);/*作子弹图形*/ floodfill(11,451,12);/*对子弹填充颜色*/ size1=imagesize(10,10,100,110); size2=imagesize(10,440,30,470); buf1=(void *)malloc(size1); buf2=(void *)malloc(size2); getimage(10,10,100,110,buf1); getimage(10,440,30,470,buf2); cleardevice(); for(i=0;i<=500;i++) { putimage(10+i,10,buf1,COPY_PUT); /* putimage(10+i,440-i*(340/500),buf2,COPY_PUT);*/ /*子弹做直线运动*/ putimage(10+i,440-(int)((double)i*i*340/250000.0),buf2,COPY_PUT); /*曲线*/ delay(3000); cleardevice(); } getch(); closegraph(); return 0;}