wintcC语言小游戏画图代码Word格式文档下载.docx

上传人:b****6 文档编号:16506814 上传时间:2022-11-24 格式:DOCX 页数:41 大小:24.27KB
下载 相关 举报
wintcC语言小游戏画图代码Word格式文档下载.docx_第1页
第1页 / 共41页
wintcC语言小游戏画图代码Word格式文档下载.docx_第2页
第2页 / 共41页
wintcC语言小游戏画图代码Word格式文档下载.docx_第3页
第3页 / 共41页
wintcC语言小游戏画图代码Word格式文档下载.docx_第4页
第4页 / 共41页
wintcC语言小游戏画图代码Word格式文档下载.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

wintcC语言小游戏画图代码Word格式文档下载.docx

《wintcC语言小游戏画图代码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《wintcC语言小游戏画图代码Word格式文档下载.docx(41页珍藏版)》请在冰豆网上搜索。

wintcC语言小游戏画图代码Word格式文档下载.docx

staticcharflag=0;

line(PubUnit[19][j].x+7,PubUnit[19][j].y,PubUnit[19][j].x+7,PubUnit[19][j].y+14);

line(PubUnit[19][j].x+7,PubUnit[19][j].y+2,PubUnit[19][j].x,PubUnit[19][j].y+14);

line(PubUnit[19][j].x+7,PubUnit[19][j].y+2,PubUnit[19][j].x+14,PubUnit[19][j].y+14);

line(PubUnit[19][j].x,PubUnit[19][j].y+14,PubUnit[19][j].x+14,PubUnit[19][j].y+14);

if(flag)

{setcolor(BLACK);

line(PubUnit[19][oldj].x+7,PubUnit[19][oldj].y,PubUnit[19][oldj].x+7,PubUnit[19][oldj].y+14);

line(PubUnit[19][oldj].x+7,PubUnit[19][oldj].y+2,PubUnit[19][oldj].x,PubUnit[19][oldj].y+14);

line(PubUnit[19][oldj].x+7,PubUnit[19][oldj].y+2,PubUnit[19][oldj].x+14,PubUnit[19][oldj].y+14);

line(PubUnit[19][oldj].x,PubUnit[19][oldj].y+14,PubUnit[19][oldj].x+14,PubUnit[19][oldj].y+14);

oldj=j;

setcolor(GREEN);

elseflag=1;

voidGameGraph(void)/*游戏画面和各项数据初始化函数*/

{inti,j;

intx,y;

intdriver=DETECT,gm;

registerbgidriver(EGAVGA_driver);

initgraph(&

driver,&

gm,"

"

);

rectangle(99,99,251,401);

x=y=100;

for(i=0;

i<

20;

i++)

{for(j=0;

j<

j++)

{PubUnit[i][j].x=x;

PubUnit[i][j].y=y;

x+=15;

}

y+=15;

x=100;

5;

i++)/*画50个泡泡*/

for(j=0;

10;

{PubState[i][j]=1;

DrawPub(i,j,PubState[i][j]);

DrawPPman(4);

HeadLine=4;

AllPubCount=50;

HeadPubCount=10;

voidmain(void)/*主函数*/

GameGraph();

play_game();

voidDownPub(void)/*泡泡下降函数,每调用一次泡泡就下降一次*/

{

inti,j;

for(i=HeadLine+1;

i>

0;

i--)

{PubState[i][j]=PubState[i-1][j];

for(j=0;

{PubState[0][j]=1;

DrawPub(0,j,PubState[0][j]);

AllPubCount+=10;

HeadLine++;

voidplay_game(void)

inttime=0;

intj=4;

while(HeadLine!

=19)

{while(time+72>

clock())

{if(kbhit())

{key=bioskey(0);

switch(key)

caseLEFT:

j--;

break;

caseRIGHT:

j++;

caseSPACE:

if(dflag==1){DrawBB(j);

BBState=1;

dflag=0;

continue;

}else

continue;

default:

continue;

if(j==-1){j=0;

elseif(j==10){j=9;

DrawPPman(j);

if(BBState)

DrawBB(-1);

DownPub();

time=clock();

gotoxy(1,1);

intDrawBB(intj)/*画子弹函数*/

inti;

intc;

staticoldj;

if(j>

=0)

{bbx=PubUnit[19][j].x+7;

bby=PubUnit[19][j].y;

line(bbx,bby,bbx,bby+4);

oldj=j;

if(getpixel(bbx,bby-5)!

=BLACK)

{if(getpixel(bbx,bby-5)==WHITE);

line(bbx,bby,bbx,bby-4);

dflag=1;

BBState=0;

for(i=19;

=0;

if(PubState[i][oldj]==1)

{PubState[i][oldj]=0;

DrawPub(i,oldj,0);

AllPubCount--;

if(AllPubCount==0)

{cleardevice();

printf("

YOUAREWINTHEGAME,GOODBOY!

printf("

\nanykeytoexit!

\n"

getch();

exit

(1);

if(i==HeadLine)

{HeadPubCount--;

if(HeadPubCount==0){HeadLine--;

for(c=0;

c<

c++)

if(PubState[HeadLine][c]==1)HeadPubCount++;

setcolor(BLACK);

return;

putpixel(bbx,bby-5,GREEN);

putpixel(bbx,bby,BLACK);

bby--;

delay(500);

/*这个东西不怎么完善,后面的如果和前面位置重合,就会被覆盖,不管十字鼠标

或圆,以及它们的颜色,

而且如何计算圆的半径,也只是粗略大概的计算

一下,结果当然不会像Windows画图那样正确,把它就当作简单的鼠标应用学习学习吧*/

dos.h>

voidDrawMouse(intx,inty,intcolor)

setcolor(color);

line(x-5,y,x+5,y);

line(x,y-5,x,y+5);

main()

intflag=0;

intfirst=0;

intCircleX,CircleY,CircleDX;

intMouseX,MouseY,MouseButton;

while(!

kbhit())

_AX=0x03;

geninterrupt(0x33);

MouseX=_CX;

MouseY=_DX;

MouseButton=_BX;

DrawMouse(MouseX,MouseY,WHITE);

if(MouseButton==1)

{flag=1;

if(first==0){CircleX=MouseX;

CircleY=MouseY,first=1;

delay(5000);

setcolor(BLACK);

circle(CircleX,CircleY,CircleDX);

else{flag=0;

first=0;

if(flag==1)

{setcolor(WHITE);

CircleDX=abs(MouseX-CircleX)+abs(MouseY-CircleY);

DrawMouse(MouseX,MouseY,BLACK);

/*下面这个计算器,是我第一次写的,有很多缺陷,被我改了很多,可是还是有

几个缺陷,本来为了凑界面上的按键,我增加一个求余运算,到最后发现

是一个错误,因为求余运算不支持浮点型的,所以,还要增加一个判断,如果是求余

运算,是否有小数参与运算,前面我发现太多类似这样的问题,被我一个

一个给改过来了,现在又来了一个,另外还有几个问题没有解决,如一开始,不按

数字,直接按加减运算符的话,居然被承认,算了,不想改了,我打算以后另写一个

好一点的.

因为这个写得实在不怎么样,就算都改好了,也没什么价值.

还不如另写一个.*/

void*pmouse;

structBLOCK

}block[5][4];

intMouseX,MouseY;

doubleFirstNumber,SecondNumber;

charsignal;

charCurrentSig;

charCS[20];

charFristCS[10];

charSecondCS[10];

intposition=0;

DrawBlock(intx,inty)

setfillstyle(1,LIGHTGRAY);

bar(x,y,x+30,y+30);

setcolor(WHITE);

line(x,y,x+30,y);

line(x,y,x,y+30);

line(x,y+30,x+30,y+30);

line(x+30,y,x+30,y+30);

rectangle(x-1,y-1,x+31,y+31);

voidGraph()

intx,y;

inti,j;

intsize;

intdriver=DETECT,gm;

registerbgidriver(EGAVGA_driver);

initgraph(&

moveto(220,220);

linerel(7,7);

linerel(-5,-1);

linerel(3,6);

linerel(-3,1);

linerel(-1,-6);

linerel(-3,3);

linerel(2,-10);

size=imagesize(217,220,228,234);

pmouse=malloc(size);

getimage(217,220,228,234,pmouse);

cleardevice();

bar(220,130,375,360);

line(220,130,375,130);

line(220,130,220,360);

setcolor(LIGHTGRAY);

line(375,325,220,360);

line(375,325,375,130);

setfillstyle(1,BLACK);

bar(230,140,365,170);

line(365,170,365,140);

line(365,170,230,170);

x=230;

y=180;

for(i=0;

4;

{block[i][j].x=x;

x+=35;

block[i][j].y=y;

DrawBlock(block[i][j].x,block[i][j].y);

y+=35;

settextstyle(0,0,1);

outtextxy(block[0][0].x+5,block[0][0].y+10,"

CE"

outtextxy(block[0][1].x+5,block[0][1].y+10,"

BAK"

outtextxy(block[0][2].x+5,block[0][2].y+10,"

ESC"

settextstyle(0,0,2);

outtextxy(block[0][3].x+10,block[0][3].y+10,"

%"

outtextxy(block[1][0].x+10,block[1][0].y+10,"

7"

outtextxy(block[1][1].x+10,block[1][1].y+10,"

8"

outtextxy(block[1][2].x+10,block[1][2].y+10,"

9"

outtextxy(block[1][3].x+10,block[1][3].y+10,"

+"

outtextxy(block[2][0].x+10,block[2][0].y+10,"

4"

outtextxy(block[2][1].x+10,block[2][1].y+10,"

5"

outtextxy(block[2][2].x+10,block[2][2].y+10,"

6"

outtextxy(block[2][3].x+10,block[2][3].y+10,"

-"

outtextxy(block[3][0].x+10,block[3][0].y+10,"

1"

outtextxy(block[3][1].x+10,block[3][1].y+10,"

2"

outtextxy(block[3][2].x+10,block[3][2].y+10,"

3"

outtextxy(block[3][3].x+10,block[3][3].y+10,"

*"

outtextxy(block[4][0].x+10,block[4][0].y+10,"

0"

outtextxy(block[4][1].x+10,block[4][1].y+10,"

."

outtextxy(block[4][2].x+10,block[4][2].y+10,"

="

outtextxy(block[4][3].x+10,block[4][3].y+10,"

/"

setfillstyle(1,BLACK);

intCheckMouse(intx,inty)

while(x==_CX&

&

y==_DX&

!

if(_BX==1)return1;

return0;

voidDrawUpKey(intx,inty);

intMouseButton;

intx,y,i,j;

Graph();

putimage(MouseX,MouseY,pmouse,XOR_PUT);

if(MouseButton==1&

MouseX>

230&

MouseX<

365&

MouseY>

180&

MouseY<

350)

CheckKey(MouseX,MouseY);

CheckMouse(MouseX,MouseY);

voidDrawUpKey(intx,inty)

while(_BX==1)

setcolor(DARKGRAY);

line(x+30,y+30,x,y+30);

line(x+30,y+30,x+30,y);

CheckKey(MouseX,MouseY)

CurrentSig=0;

if(MouseX>

260&

210)

rectangle(230,180,260,210);

DrawUpKey(230,180);

CurrentSig='

c'

;

elseif(MouseX>

265&

295&

rectangle(265,180,295,210);

DrawUpKey(265,180);

b'

300&

330&

rectangle(300,180,330,210);

DrawUpKey(300,180);

e'

335&

rectangle(335,180,365,210);

DrawUpKey(335,180);

%'

215&

245)

rectangle(230,215,260,245);

DrawUpKey(230,215);

7'

rectangle(265,215,295,245);

DrawUpKey(265,215);

8'

rectangle(300,215,330,245);

DrawUpKey(300,215);

9'

rectangle(335,215,365,245);

DrawUpKey(335,215);

+'

250&

280)

rectangle(230,250,260,280);

DrawUpKey(230,250);

4'

rectangle(265,250,295,280);

DrawUpKey(265,250);

5'

33

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1