




已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
c18.txt #include #include #include #include #include #include #define G 9.8 /*/ #define PI 3.141593 /*/ #define L1 60 /*/ #define T1 100 #define R1 200 #define B1 450 #define AMD1 7.8 /*7.8*/ #define AMD2 1.78 /*/ /*/ #define WAITING 0xff00 #define LEFTPRESS 0xff01 #define LEFTCLICK 0xff10 #define LEFTDRAG 0xff19 #define RIGHTPRESS 0xff02 #define RIGHTCLICK 0xff20 #define RIGHTDRAG 0xff2a #define MIDDLEPRESS 0xff04 #define MIDDLECLICK 0xff40 #define MIDDLEDRAG 0xff4c #define MOUSEMOVE 0xff08 int Keystate; int MouseExist; int MouseButton; int MouseX; int MouseY; int up1616,down1616,mouse_draw1616,pixel_save1616; void MouseMath()/*/ int i,j,jj,k; long UpNum16= 0x3fff,0x1fff,0x0fff,0x07ff, 0x03ff,0x01ff,0x00ff,0x007f, 0x003f,0x00ff,0x01ff,0x10ff, 0x30ff,0xf87f,0xf87f,0xfc3f ; long DownNum16= 0x0000,0x7c00,0x6000,0x7000, 0x7800,0x7c00,0x7e00,0x7f00, 0x7f80,0x7e00,0x7c00,0x4600, 0x0600,0x0300,0x0300,0x0180 ; for(i=0;i=0;k-) upik=0; for(k=jj;k=0;k-) downik=0; for(k=0;k16;k+)/*/ if(upik=0&downik=0) mouse_drawik=1; else if(upik=0&downik=1) mouse_drawik=2; else if(upik=1&downik=0) mouse_drawik=3; else mouse_drawik=4; mouse_draw12=4;/*/ /*/ void MouseOn() int x=MouseX,y=MouseY; int i,j; int color; for(i=0;i16;i+)/*/ for(j=0;j16;j+) pixel_saveij=getpixel(x+j,y+i);/*/ if(mouse_drawij=1) putpixel(x+j,y+i,0); else if(mouse_drawij=2) putpixel(x+j,y+i,15); /*/ void MouseOff() int i,j,x,y,color; x=MouseX; y=MouseY; for(i=0;i16;i+)/*/ for(j=0;j16;j+) if(mouse_drawij=3|mouse_drawij=4) continue; color=getpixel(x+j,y+i); putpixel(x+j,y+i,colorcolor); putpixel(x+j,y+i,pixel_saveij); /*/ void MouseReset() _AX=0x00; geninterrupt(0x33); /* lx: rx: */ void MouseSetX(int lx,int rx) _CX=lx; _DX=rx; _AX=0x07; geninterrupt(0x33); /* uy: dy: */ void MouseSetY(int uy,int dy) _CX=uy; _DX=dy; _AX=0x08; geninterrupt(0x33); /* x: y: */ void MouseSetXY(int x,int y) _CX=x; _DX=y; _AX=0x04; geninterrupt(0x33); /*/ /* : 1= 0=*/ int LeftPress() _AX=0x03; geninterrupt(0x33); return(_BX&1); /* */ int MiddlePress() _AX=0x03; geninterrupt(0x33); return(_BX&4); /* */ int RightPress() _AX=0x03; geninterrupt(0x33); return(_BX&2); /*/ void MouseGetXY() _AX=0x03; geninterrupt(0x33); MouseX=_CX; MouseY=_DX; /*,0123*/ int MouseStatus() int x,y; int status; int press=0; int i,j,color; status=0;/*/ x=MouseX; y=MouseY; while(x=MouseX&y=MouseY&status=0&press=0) if(LeftPress()&RightPress() press=1; else if(LeftPress() press=2; else if(RightPress() press=3; MouseGetXY(); if(MouseX!=x|MouseY!=y) status=1; if(status)/*/ for(i=0;i16;i+)/*/ for(j=0;j16;j+) if(mouse_drawij=3|mouse_drawij=4) continue; color=getpixel(x+j,y+i); putpixel(x+j,y+i,colorcolor); putpixel(x+j,y+i,pixel_saveij); MouseOn();/*/ if(press!=0)/*/ return press; return 0;/*/ /*/ struct Renint x,y;int life;int color;int lr;/*12*/;/*/void Desktop()setcolor(14);line(320,0,320,480);rectangle(L1-20,T1-40,R1+20,B1+10);rectangle(640-(R1+20),(T1-40),640-(L1-20),B1+10);outtextxy(25,20,P1);outtextxy(345,20,P2);/*(x,y)(cx,cy)r*/*int PointCircle(int cx,int cy,int r,int *x,int *y)double g;if(cx-(*x)*(cx-(*x)+(cy-(*y)*(cy-(*y)=r*r)return 1;elseg=sqrt(double)(*x-cx)*(*x-cx)+(*y-cy)*(*y-cy)/(double)(r);*x=(int)(double)(*x-cx)/g)+cx;*y=(int)(double)(*y-cy)/g)+cy; return 0; */*na+-*/void numtostr(int n,char a5)int w,e;e=n;n=abs(n);a3=(n%10)+0;w=n/10;a2=(w%10)+0;w=w/10;a1=(w%10)+0;a4=0;if(e0)a0=-;elsea0=+;/*/void AngleSpeed(double s,double angle)int ss,aa;char zzs5,zza5;int left,top,right,bottom;left=275;top=50;right=left+90;bottom=top+10;ss=(int)(s);aa=(int)(angle)*180/PI);numtostr(ss,zzs);numtostr(aa,zza);setfillstyle(1,15);setcolor(10);bar(left,top,right,bottom);outtextxy(left+5,top+3,zzs);outtextxy(left+right)/2+5,top+3,zza);circle(right-6,top+3,2);/*/void Fire (int a4,double *v,double *angle,int n)/*avanglen*/int t;double vx,vy;double sx,sy;int m;m=12*4/n;randomize();m=random(m)-m/2; t=20;sx=(double)(a2-a0);sy=(double)(a3-a1);vx=sx/(double)(t);vy=(sy-0.5*PI*(double)(t*t)/(double)(t);*angle=atan(-vy)/vx);*v=sqrt(vx*vx+vy*vy);*v=(*v)*(AMD2+0.01*(double)(m);AngleSpeed(*v,*angle);/*/void LifePicture(int life,int color,int location)char lm5;int l,t,r,b;l=50;t=20;r=l+200;b=t+10;numtostr(life,lm);setfillstyle(1,color);setcolor(15);if(location=1|location=3)bar(l,t,r,b);setfillstyle(1,4);bar(l,t+(b-t)/4,l+life,t+3*(b-t)/4);setfillstyle(1,color);bar(r+10,t,r+50,b);outtextxy(r+10+5,t+2,lm);else l=320+50;r=l+200;bar(l,t,r,b);setfillstyle(1,4);bar(l,t+(b-t)/4,l+life,t+3*(b-t)/4);setfillstyle(1,color);bar(r+10,t,r+50,b);outtextxy(r+10+5,t+2,lm);/*/void RenPicture(int x,int y,int color)setcolor(color);setwritemode(1);line(x,y-40,x-10,y-30);/*/line(x,y-40,x+10,y-30);line(x-10,y-30,x+10,y-30);line(x-5,y-30,x-5,y-10);/*/line(x+5,y-30,x+5,y-10);line(x-20,y-10,x+20,y-10);/*/line(x-20,y+10,x+20,y+10);line(x-20,y-10,x-20,y+10);line(x+20,y-10,x+20,y+10);/*/void PictureBullets (int wx,int wy,int tx,int ty)setcolor(RED);line(wx,wy,tx,ty);line(wx-1,wy-1,tx,ty);line(wx+1,wy+1,tx,ty);/*/void InitialArrow (int x,int y,int c4)int addx=0,addy=0;int a2,b2;int bowb=7;int bowx=2;double bow=80.0;bow=bow/2;a0=x;a1=y;b0=x;b1=y;if(c0=c2)&(c1=c3) addx=(c2-c0)/6; addy=(c3-c1)/6; PictureBullets(x+addx,y+addy,x-addx/4,y-addy/4); setcolor(bowb); line(a0,a1,b0,b1); setcolor(bowx); line(a0,a1,x+addx,y+addy); line(b0,b1,x+addx,y+addy); else addx=(c2-c0)/6; addy=(c3-c1)/6; PictureBullets(x+addx,y+addy,x-addx/4,y-addy/4); if(addx=0&addy!=0) a0=b0=x;a1=y-(int)(bow);b1=y+(int)(bow); if(addx!=0&addy=0) a1=b1=y; a0=x-(int)(bow); b0=x+(int)(bow); if(addx!=0&addy!=0) a0=x+(int)(bow*sqrt(double)(addy)*(double)(addy)/(double)(addx)*(double)(addx)+(double)(addy)*(double)(addy); a1=y-(a0-x)*(addx)/addy; b0=x-(int)(bow*sqrt(double)(addy)*(double)(addy)/(double)(addx)*(double)(addx)+(double)(addy)*(double)(addy); b1=y-(b0-x)*(addx)/addy; setcolor(bowb); line(a0,a1,b0,b1); setcolor(bowx); line(a0,a1,x+addx,y+addy); line(b0,b1,x+addx,y+addy); /*qxqy*/int PointPlace(int qx,int qy,int x1,int y1,int x2,int y2)/*01234*/int s;if(x1=x2)if(qxx1)return 4;elsereturn 0;elses=(int)(double)(y1-y2)/(double)(x1-x2)*(double)(qx-x1)+(double)(y1);if(qys)return 2;elsereturn 0;/*(twoxy0-twoxy2,twoxy1-twoxy3)(vectorx,vectory)*/void DistanceAngle (int twoxy4,int vectorx,int vectory,double *distance,double *angle)double a,b;double s;if(twoxy0=twoxy2)&twoxy1=twoxy3)*distance=0;*angle=0;elseb=(double)(double)(twoxy3-twoxy1)*(double)(twoxy3-twoxy1)+(double)(twoxy2-twoxy0)*(double)(twoxy2-twoxy0);b=sqrt(b);*distance=b;s=(double)(double)(vectorx)*(double)(vectorx)+(double)(vectory)*(double)(vectory);s=sqrt(s);a=(double)(double)(twoxy0-twoxy2)*(double)(vectorx)+(double)(twoxy1-twoxy3)*(double)(vectory);a=a/(b*s);a=acos(a);if(twoxy3=twoxy1)*angle=a;else*angle=a+(PI-a)*2;/*sxsy*/void RelativePosition(int *sx,int *sy,double v,double angle,double t)*sx=(int)(v*cos(angle)*t);*sy=(int)(v*sin(angle)*t-0.5*G*t*t);/*twoxy*/void TwoPoints(int twoxy4,int dx,int dy)int i,q=1;double speed=0.0,angle=0.0;twoxy0=0;twoxy1=0;setcolor(13);line(0,dy,640,dy); setcolor(4); MouseOn();/*/ setwritemode(1); i=0; while(q) if(i=1) MouseOff(); DistanceAngle(twoxy,1,0,&speed,&angle); AngleSpeed(speed/AMD1,angle); InitialArrow (dx,dy,twoxy); setcolor(4); line(twoxy0,twoxy1,twoxy2,twoxy3); MouseOn(); if(twoxy2!=MouseX)|(twoxy3!=MouseY) twoxy2=MouseX; twoxy3=MouseY; /*PointCircle(twoxy0,twoxy1,50,&(twoxy2),&(twoxy3);*/ MouseOff(); DistanceAngle(twoxy,1,0,&speed,&angle); AngleSpeed(speed/AMD1,angle); InitialArrow (dx,dy,twoxy); setcolor(4); line(twoxy0,twoxy1,twoxy2,twoxy3); MouseOn(); if(MouseStatus() sound(1000);/*/ delay(10000); nosound(); delay(1000000); delay(1000000); delay(1000000); delay(1000000); if(i=0) twoxy0=MouseX; twoxy1=MouseY; twoxy2=MouseX; twoxy3=MouseY; i=1; else MouseOff(); DistanceAngle(twoxy,1,0,&speed,&angle); AngleSpeed(speed/AMD1,angle); InitialArrow (dx,dy,twoxy); setcolor(4); line(twoxy0,twoxy1,twoxy2,twoxy3); setcolor(13); line(0,dy,640,dy); q=0; i=0; /*speed1speed2*/int Launch(int lx,int ly,int tx,int ty,int hm,int grade)double speed1=0.01;int speed2=1000;int a4;int xx2,xy2;double s=0.0,angle=0.0,t=0.0;lx=lx;ly=ly-40;if(hm=3) a0=lx; a1=ly; a2=tx; a3=ty; Fire (a,&s,&angle,grade); else TwoPoints(a,lx,ly); DistanceAngle(a,1,0,&s,&angle); s=s/AMD1; RelativePosition(&xx0,&xy0,s,angle,t-1); RelativePosition(&xx1,&xy1,s,angle,t); for(t=0.0;ly-xy1480;t=t+speed1) RelativePosition(&xx0,&xy0,s,angle,t-1); RelativePosition(&xx1,&xy1,s,angle,t); if(PointPlace(lx+xx1,ly-xy1,tx,ty-40,tx+10,ty-30)=2&PointPlace(lx+xx1,ly-xy1,tx,ty-40,tx-10,ty-30)=2&PointPlace(lx+xx1,ly-xy1,tx-10,ty-30,tx+10,ty-30)=1) sound(4000);/*/ delay(10000); nosound(); return 1; if(PointPlace(lx+xx1,ly-xy1,tx-5,ty-30,tx+5,ty-30)=2&PointPlace(lx+xx1,ly-xy1,tx-5,ty-10,tx+5,ty-10)=1&PointPlace(lx+xx1,ly-xy1,tx-5,ty-30,tx-5,ty-10)=4&PointPlace(lx+xx1,ly-xy1,tx+5,ty-30,tx+5,ty-10)=3) sound(3000);/*/ delay(10000); nosound(); return 2; if(PointPlace(lx+xx1,ly-xy1,tx-20,ty-10,tx-20,ty+10)=4&PointPlace(lx+xx1,ly-xy1,tx+20,ty-10,tx+20,ty+10)=3&PointPlace(lx+xx1,ly-xy1,tx-20,ty-10,tx+20,ty-10)=2&PointPlace(lx+xx1,ly-xy1,tx-20,ty+10,tx+20,ty+10)=1) sound(2000);/*/ delay(10000); nosound(); return 3; if(ly-xy11) delay(speed2); continue; if(lx+xx1640-1) return 0; PictureBullets (lx+xx0,ly-xy0,lx+xx1,ly-xy1); delay(speed2); PictureBullets (lx+xx0,ly-xy0,lx+xx1,ly-xy1); return 0;/*/int MoveRen(struct Ren *p)int a,k=19200,b=0,d;int q=1;randomize();for(;q;) if(b=1) p-lr=3; RenPicture(p-x,p-y,p-color); if(p-lr=3) b=1; delay(10000); delay(10000); delay(10000); delay(10000); delay(10000); delay(10000); /sleep(1); d=random(10); if(d=0) k=19200; if(d=1) k=19712; if(d=2) k=18432; if(d=3) k=20480; if(d=4) k=7181; p-lr=1; else k=bioskey(0); RenPicture(p-x,p-y,p-color); switch(k) case 19200: /*/a=(p-x)-5;if(p-lr=1) if(aL1&ax=a;break; else if(a640-R1&ax=a; break; break; case 19712: /*/ a=(p-x)+5;if(p-lr=1) if(aL1&ax=a;break; else if(a640-R1&ax=a; break; break; case 18432: /*/ a=(p-y)-5;if(p-lr=1) if(aT1&ay=a;break; else if(aT1&ay=a; break; break; case 20480: /*/ a=(p-y)+5;if(aT1&ay=a;break; case 7181: /*enter*/ if(b=1) p-lr=3; q=0; break; case 283: return 0;RenPicture(p-x,p-y,p-color);return 1;/*/int GameStar()/*12345*/int q,k,h=0; for(;1;) q=1;cleardevice();/*/setcolor(15); settextstyle(0,0,5); outtextxy(100,100,Start Game!); settextstyle(0,0,1); outtextxy(20
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國(guó)照明行業(yè)出海國(guó)別機(jī)會(huì)洞察報(bào)告
- 安全試題分類(lèi)及答案圖片
- 游戲化教學(xué)在科學(xué)探究課程中的創(chuàng)新應(yīng)用報(bào)告
- 2025年數(shù)字貨幣監(jiān)管政策對(duì)金融監(jiān)管機(jī)制的影響研究報(bào)告
- 周末安全提醒課件
- 周總理主題班會(huì)課件
- 走進(jìn)民族英雄教育
- 助力冬奧班會(huì)課件
- 湖南省衡陽(yáng)市耒陽(yáng)市2025年八下英語(yǔ)期末學(xué)業(yè)水平測(cè)試模擬試題含答案
- 中國(guó)元素英文課件
- GB/T 37234-2018文件鑒定通用規(guī)范
- 健康減肥調(diào)脂降糖
- LaTeX科技排版課件
- 2023年河北交通投資集團(tuán)有限公司招聘筆試題庫(kù)及答案解析
- 反向傳播算法課件
- 企業(yè)質(zhì)量安全主體責(zé)任
- 南模自招試卷-2012年自主招生
- 數(shù)據(jù)倉(cāng)庫(kù)開(kāi)發(fā)規(guī)范
- 固定資產(chǎn)報(bào)廢申請(qǐng)單
- 小學(xué)美術(shù)人美五年級(jí)上冊(cè)偶戲皮影研究課教案
- 工程結(jié)算審核定案表(模板)
評(píng)論
0/150
提交評(píng)論