📄 spr1.c
字号:
/*spriteget.c*/
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<math.h>
#include<conio.h>
#include"svgacc.h"
void main()
{
int i,colr,xinc,yinc,x1,y1,x2,y2,cntx,cnty,rot;
RasterBlock *gfxblk,*gfxblk2,*spritebkgnd;
whichvga();
res800();
xinc=maxx/20;
yinc=maxy/20;
x1=maxx/2-xinc+150;
y1=maxy/2-yinc+50;
x2=maxx/2+xinc+150;
y2=maxy/2+yinc+50;
i=(x2-x1+1)*(y2-y1+1)+4;
gfxblk=(RasterBlock *)malloc(i);
if(!gfxblk){
restext();
printf("error:Allocating memory for gfxblk:%d bytes\n",i);
exit(1);
}
colr=1;
for(i=0;i<=maxx/2;i+=1)
{
/* drwbox(1,colr,maxx/4+i,maxy/2-60,maxx/4+60+i,maxy/2+60);*/
drwcircle(1,colr,maxx/4+i,maxy/2+i/2,maxy/6+i/2);
colr+=1;
if(colr>110)
colr=1;
}
drwbox(1,0,x1,y1,x2,y2);
blkget(x1,y1,x2,y2,gfxblk);
cntx=(x2-x1)/2+x1;
cnty=(y2-y1)/2+y1;
fillarea(x1+2,y1+2,0,0);
i=blkrotatesize(45,gfxblk);
spritebkgnd=(RasterBlock *)malloc(i);
if(!spritebkgnd){
restext();
printf("error:allocating memory for spritebkand:%d bytes\n",i);
exit(1);
}
gfxblk2=(RasterBlock *)malloc(i);
if(!gfxblk2){
restext();
printf("error:allocating memory for gfxblk2:%d bytes\n",i);
exit(1);
}
blkget(x1,y1,x2,y2,spritebkgnd);
setview(0,64,maxx,maxy);
for(i=0;i<=360;i+=3){
rot=blkrotate(i,1,gfxblk,gfxblk2);
spriteput(SET,1,cntx-(spritebkgnd->width)/2,cnty-(spritebkgnd->height)/2,spritebkgnd);
spritegap(1,cntx-(gfxblk2->width)/2,cnty-(gfxblk2->height)/2,gfxblk2,spritebkgnd);
sdelay(3);
}
spriteput(SET,1,cntx-(spritebkgnd->width)/2,cnty-(spritebkgnd->height)/2,spritebkgnd);
blkput(SET,x1,y1,(RasterBlock *)gfxblk);
getch();
restext();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -