Linux街机游戏源码Word文件下载.docx
《Linux街机游戏源码Word文件下载.docx》由会员分享,可在线阅读,更多相关《Linux街机游戏源码Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
游戏者1控制键:
R,F,D,G
游戏者2控制键:
UP,DOWN,LEFT,RIGHT
F1:
查看帮助信息
F2:
设定游戏速度等级,0为最快,1为正常,2最慢
F3:
设定游戏者1的颜色,有15种颜色可以选择,黑色是背景色,不能选
F4:
设定游戏者2的颜色
F5:
继续游戏。
。
Author:
jadewater(gaowenfeng)
email:
QQ:
如果这里不能下载你可以发邮件给我,其中包括4个文件:
Trone.c(源代码),Trone.exe(已编译连接游戏文件),EGAVGA.BGI,游戏说明.txt
*******************************************************************************
#include<
time.h>
stdlib.h>
conio.h>
ctype.h>
stdio.h>
graphics.h>
bios.h>
/*功能键设置*/
#defineESC0x001b/*退出游戏*/
#defineF10x3b00/*查看帮助信息,调用HelpMassage()函数*/
#defineF20x3c00/*设定游戏速度等级,调用Set_Level()函数*/
#defineF30x3d00/*设定游戏者1的颜色,调用Set_Color()函数*/
#defineF40x3e00/*设定游戏者2的颜色,调用Set_Color()函数*/
#defineF50x3f00/*以下功能键暂时保留,如果增加功能可使用*/
#defineF60x4000
#defineF70x4100
#defineF80x4200
#defineF90x4300
#defineF100x4400
/*Player1hotkey游戏者1热键上下左右分别用RFDG控制*/
#defineRIGHT171
#defineLEFT168
#defineUP182
#defineDOWN170
/*Player2hotkey游戏者2热键,四个光标键控制方向*/
#defineRIGHT0x4d00
#defineLEFT0x4b00
#defineUP0x4800
#defineDOWN0x5000
/*定义画方框的坐标X,Y,以及颜色Color,Draw为是
(1)否
(0)已走过*/
structinformation{intcolor,draw;
intx,y;
};
typedefstructinformationINFOR;
typedefstructplayerxyCurrentCoor;
/*此全局数组是记录画每个框的坐标及颜色以及是否已走过*/
INFORcoordinate[80][60];
time_tTimeout=1;
/*限制游戏的快慢,可用Set_Level()设定*/
intsize=8,maxX=79,maxY=56;
/*size定义画框的大小,单位为像素,maxX,maxY为数组coordinate下标的最大值*//*BackColor为游戏背景色,Player1Color与Player2Color为游戏者默认颜色,可调用Set_Color()函数设定*/intBackColor=BLACK,Player1Color=WHITE,Player2Color=LIGHTRED;
/*初始化图形模式*/
voidInitialGraphics(void){intgraphdriver=VGA,graphmode=VGAHI;
interrorcode;
initgraph(&
graphdriver,&
graphmode,"
"
);
errorcode=graphresult();
if(errorcode!
=grOk){printf("
Graphicserror:
%s\n"
grapherrormsg(errorcode));
GoodBye();
}}
/*退出游戏显示提示信息,只有不能初始化图形界面才会调用此函数*/
intGoodBye(void){printf("
Thankyouverymuch!
\n"
printf("
Ifyouhaveanyquestion,\n"
Pleasesendemailtome:
GetKey();
exit
(0);
}/*初始化游戏界面*/
voidInitFace(void){setbkcolor(BackColor);
cleardevice();
setcolor(WHITE);
rectangle(0,0,639,479);
}/*初始化全局数组coordinate[][]*/
voidInitCoordinate(void){intx,y;
for(x=0;
x<
maxX;
x++)
for(y=0;
y<
maxY;
y++){coordinate[x][y].color=BackColor;
coordinate[x][y].draw=0;
coordinate[x][y].x=size*x+4;
coordinate[x][y].y=size*y+4;
/*初始化游戏者开始位置*/
voidInitPlayerPlace(CurrentCoor*player1,CurrentCoor*player2){player1->
x=maxX/3;
player2->
x=maxX/3*2;
player1->
y=maxY/2;
}/*画框函数,player为画框位置,who为哪一个游戏者*/
voidDrawbar(CurrentCoorplayer,intwho){intx,y;
/*根据游戏者所在coordinate的下标位置取出在屏幕上的位置*/
x=coordinate[player.x][player.y].x;
y=coordinate[player.x][player.y].y;
if(who==1)
{setfillstyle(1,Player1Color);
coordinate[player.x][player.y].color=Player1Color;
}else
{setfillstyle(1,Player2Color);
coordinate[player.x][player.y].color=Player2Color;
}bar(x,y,x+7,y+7);
coordinate[player.x][player.y].draw=1;
}/*帮助信息,按F1调用此函数*/
voidHelpMassage(void)
rectangle(154,164,496,180);
rectangle(154,182,496,336);
setcolor(GREEN);
outtextxy(280,170,"
TroneV0.1"
setcolor(BLACK);
outtextxy(160,190,"
Player1controlkey:
outtextxy(160,200,"
Player2controlkey:
outtextxy(160,220,"
Help:
Level:
Exit:
outtextxy(160,230,"
Playercolor:
outtextxy(160,250,"
outtextxy(160,260,"
E_mail:
outtextxy(160,270,"
OICQ:
setcolor(RED);
outtextxy(330,190,"
r,f,d,g"
outtextxy(330,200,"
up,down,left,right"
F1F2Esc"
F3/F4"
outtextxy(220,250,"
GaoWenfeng"
outtextxy(220,270,"
setcolor(BLUE);
outtextxy(175,290,"
Ifyouhaveanyquestionormodifythese"
outtextxy(160,300,"
code,Pleasesendemailtome.Thankyou"
outtextxy(160,310,"
playthisgame!
}/*获取按键,如果低八位非0则为ASCII码,如为0则为控制键*/
intGetKey(void){intkey;
key=bioskey
if(key<
<
8){key=key&
0x00ff;
if(isalpha(key))/*如果为字母则转换为大写*/
key=toupper(key);
}returnkey;
}/*初始化开始方向,只有两个游戏者都按下了方向键才开始游戏*/
voidInitfx(int*player1fx,int*player2fx){elseif(key==RIGHT||key==LEFT||key==UP||key==DOWN)
(*player2fx)=key;
/*最主要函数,控制画框方向以及判断是否已死*/
intManageMove(CurrentCoorplayer1,CurrentCoorplayer2){intplayer1fx=0,player2fx=0;
/*记录游戏者的方向*/
intdie=0,die1=0,die2=0;
/*记录游戏者是否已死*/
intkey;
intcurrentfx1,currentfx2;
/*记录游戏者所按的方向键,它需与player1fx与player2fx比较,确定是否转向*/clock_tcurrent_time,front_time;
/*用于控制游戏速度的变量*/
Initfx(&
player1fx,&
player2fx);
currentfx1=player1fx;
curren