代码笔记 | 一个简单的游戏框架
来源:互联网 发布:淘宝会员抓取系统下载 编辑:程序博客网 时间:2024/06/05 08:28
#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<windows.h>#include<string.h>int x,y,hp,hpmax,misson;int exp,lv,gold;char mapdata[60][25];char name[10];void startmov();void menu();void createpsn();void loadpsn();void psnmenu();void eput();void move();int judge(int m,int n);void drawmap();void loaddata();void gamemenu();int main() //主函数 { startmov(); system("CLS"); psnmenu(); menu(); system("CLS"); move();} //....地图显示....//void drawmap(){ int i,j; HANDLE f_mark; COORD s_mark; for(i=0;i<25;i++) { for(j=0;j<60;j++) { s_mark.X=j; s_mark.Y=i; f_mark=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(f_mark,s_mark); printf("%c",mapdata[j][i]); } } }//...地图显示结束...// //......游戏内菜单.......// void gamemenu(){ HANDLE f_mov; COORD s_mov; s_mov.X=62; s_mov.Y=4; f_mov=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(f_mov,s_mov); printf("血量:%d",hp);}//......游戏内菜单结束.......// int judge(int m,int n) //碰撞检测 { if(mapdata[m][n]=='#') { return 2; } else if(mapdata[m][n]=='?') { return 3; } else if(mapdata[m][n]=='$') { return 4; } else if(mapdata[m][n]=='@') { return 5; } else { return 1; }} void createpsn()//创建玩家信息 { int i=0; FILE *psnc; char writein[10]; psnc=fopen("player1.psn","w"); char namec[10]; printf("请输入玩家昵称:"); gets(namec); fwrite("#psn:name=",10,1,psnc); fwrite(namec,strlen(namec),1,psnc); fwrite(";",1,1,psnc); fwrite("misson=1",8,1,psnc); fwrite(";",1,1,psnc); fwrite("hpmax=100",9,1,psnc); while(namec[i]!='\\0') { name[i]=namec[i]; i++; } name[i]='\\0'; hpmax=100; misson=1; fclose(psnc);}void loadpsn(){ }void psnmenu() //个人信息选择菜单 { char t; psnjump: printf("\\n\\n\\n\\n\\n"); printf("\\t\\t\\t ************************\\n"); printf("\\t\\t\\t * 1.创建新的个人信息 *\\n"); printf("\\t\\t\\t ************************\\n"); printf("\\t\\t\\t * 2.载入已有的个人信息 *\\n"); printf("\\t\\t\\t ************************\\n"); t=getch(); if(t=='1') createpsn(); else if(t=='2') ; else { system("CLS"); printf("输入错误,请重新输入"); Sleep(1000); system("CLS"); goto psnjump; } system("CLS");}void move(){ int xl=x,yl=y; char key; HANDLE f_mov; COORD s_mov; drawmap(); gamemenu(); while(1) { s_mov.X=xl; s_mov.Y=yl; f_mov=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(f_mov,s_mov); printf(" "); s_mov.X=x; s_mov.Y=y; f_mov=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(f_mov,s_mov); printf("O"); key=getch(); xl=x;yl=y; if((key=='a'||key=='A')&&(judge(x-1,y)!=2)) x--; if((key=='w'||key=='W')&&(judge(x,y-1)!=2)) y--; if((key=='d'||key=='D')&&(judge(x+1,y)!=2)) x++; if((key=='s'||key=='S')&&(judge(x,y+1)!=2)) y++; } }void startmov(){ printf("\\n\\n\\n\\n\\n"); printf("\\t\\t********* ********* *********\\n"); Sleep(200); printf("\\t\\t* * *\\n"); Sleep(200); printf("\\t\\t* * *\\n"); Sleep(200); printf("\\t\\t* ********* *\\n"); Sleep(200); printf("\\t\\t* * * * ***\\n"); Sleep(200); printf("\\t\\t* * * * * *\\n"); Sleep(200); printf("\\t\\t********* ********* * * * ***\\n"); Sleep(1000); getch();}void menu(){ char t; int n=4; jump1: printf("\\n\\n\\n\\n\\n"); printf("\\t\\t\\t **********************\\n"); printf("\\t\\t\\t * 1.开始剧情模式 *\\n"); printf("\\t\\t\\t **********************\\n"); printf("\\t\\t\\t * 2.载入剧情模式 *\\n"); printf("\\t\\t\\t **********************\\n"); printf("\\t\\t\\t * 3.载入自由模式地图 *\\n"); printf("\\t\\t\\t **********************\\n"); printf("\\t\\t\\t * 4.帮助 *\\n"); printf("\\t\\t\\t **********************\\n"); printf("\\t\\t\\t * 5.退出 *\\n"); printf("\\t\\t\\t **********************\\n"); t=getch(); if(t=='1') ; else if(t=='2') n=2; else if(t=='3') loaddata(); else if(t=='4') ; else if(t=='5') ; else { system("CLS"); printf("输入错误,请重新输入"); Sleep(1000); system("CLS"); goto jump1; } }void loaddata(){ int i,j; char canshu[10]; FILE *loadgame; char mapname[39]; char ds; memset(canshu,NULL,10*sizeof(char)); system("CLS"); jump2: printf("请输入地图文件所在位置:"); gets(mapname); if((loadgame=fopen(mapname,"r"))==NULL) { printf("打开失败,请确定地图文件是否存在."); Sleep(1000); system("CLS"); goto jump2; } else { system("CLS"); memset(canshu,NULL,10*sizeof(char));//检测头代码 fread(canshu,7,1,loadgame); if(strcmp(canshu,"#cstmap")!=0) { printf("111"); eput(); goto jump2; } memset(canshu,NULL,10*sizeof(char));//冒号过渡 fread(canshu,1,1,loadgame); if(strcmp(canshu,":")!=0) { printf("111"); eput(); goto jump2; } memset(canshu,NULL,10*sizeof(char));// 坐标 fread(canshu,2,1,loadgame); if(strcmp(canshu,"x=")!=0) { eput(); goto jump2; } memset(canshu,NULL,10*sizeof(char));// x值设定 fread(canshu,2,1,loadgame); x=(canshu[0]-'0')*10+canshu[1]-'0'; memset(canshu,NULL,10*sizeof(char));//逗号过渡 fread(canshu,1,1,loadgame); if(strcmp(canshu,",")!=0) { eput(); goto jump2; } memset(canshu,NULL,10*sizeof(char));// 坐标 fread(canshu,2,1,loadgame); if(strcmp(canshu,"y=")!=0) { eput(); goto jump2; } memset(canshu,NULL,10*sizeof(char));// y值设定 fread(canshu,2,1,loadgame); y=(canshu[0]-'0')*10+canshu[1]-'0'; memset(canshu,NULL,10*sizeof(char));//分号过渡 fread(canshu,1,1,loadgame); if(strcmp(canshu,";")!=0) { eput(); goto jump2; } memset(canshu,NULL,10*sizeof(char));// 血量 fread(canshu,3,1,loadgame); if(strcmp(canshu,"hp=")!=0) { printf("111"); eput(); goto jump2; } memset(canshu,NULL,10*sizeof(char));// 血量设定 fread(canshu,3,1,loadgame); hp=(canshu[0]-'0')*100+(canshu[1]-'0')*10+canshu[2]-'0'; if(hp>hpmax) hp=hpmax; fgetc(loadgame); memset(canshu,NULL,10*sizeof(char));// 地图数据开始标志 fread(canshu,8,1,loadgame); if(strcmp(canshu,"mapdata:")!=0) { printf("11122221"); eput(); goto jump2; } fgetc(loadgame); for(j=0;j<25;j++) //装载地图 { for(i=0;i<60;i++) { mapdata[i][j]=fgetc(loadgame); } fgetc(loadgame); } memset(canshu,NULL,10*sizeof(char));// 地图数据结束标志 fread(canshu,10,1,loadgame); if(strcmp(canshu,"enddata;")!=0) { eput(); goto jump2; } fclose(loadgame); } }void eput(){ printf("载入地图失败!地图文件可能损坏或者未采用标准编写格式,请重试"); Sleep(1000); system("CLS");}
0 0
- 代码笔记 | 一个简单的游戏框架
- 一个简单游戏框架
- 一个简单的游戏服务器框架
- 一个简单的游戏服务器框架
- 一个简单的游戏服务器框架
- 一个简单的游戏服务器框架
- 一个简单的游戏服务器框架
- 一个简单的游戏服务器框架
- 一个简单的游戏服务器框架
- 一个简单的游戏服务器框架
- 一个简单的游戏服务器框架
- 一个简单的游戏服务器框架
- 一个简单的游戏服务器框架
- 一个简单的游戏服务器框架
- 一个简单的游戏服务器框架
- 一个简单的游戏服务器框架
- 一个简单的游戏服务器框架
- 一个简单的游戏服务器框架
- 【deeplearning】【框架】【caffe】之 caffe安装
- 【Linux】启动mongo db后台服务
- C++/C宏定义中## 连接符与# 符的含义
- 链表实现栈
- C# 使用SqlBulkCopy类批量复制大数据
- 代码笔记 | 一个简单的游戏框架
- 【Android】Gadle改变应用名称(appName)的两种方法
- 欢迎使用CSDN-markdown编辑器
- centos6 mysql安装
- Android Context 上下文 你必须知道的一切
- 深入研究ora-01555(1)
- mysql 数据库 for update 锁
- Android常用控件--RecyclerView的简单使用
- HDU 1711 Number Sequence