您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > C语言产品计划报告书
C语言弹弹乐产品计划报告书设计名称:弹弹乐专业:软件工程班级:1418姓名:XX学号:14621418XX指导老师:王若慧目录1)选题背景与意义2)需求分析3)开发环境4)总体设计5)源代码6)心得体会一、选题背景与意义随着编程语言的不断发展,游戏发展速度越来越快,游戏已经成为现在人生活娱乐,打发时间,缓解压力的一项不可或缺的项目。而一个优秀的游戏离不开游戏画面、程序脚本以及后期音效的共同作用。因此,越来越多有着引人入胜的剧情,丰富有趣的画面,好听难忘的音乐的小游戏在互联网上被越来越多的玩家喜爱和分享。当这些兼具艺术性与流行性的元素都由一个游戏组合到一起,人们可以从中得到娱乐和放松,同时有得到一些对生活对人生的启发,让人会心一笑。而创作者也可以选择不同的风格,不同的手法用计算机的一系列数码艺术创作手法实现自己的创意,然后在一些交流互动网站上发表,供他人娱乐或者借鉴,同时也可以得到广大互联网用户的意见,从而提高自身的创作水品。由此可见,游戏设计的意义就在于:集合不同的艺术门类,把艺术与技术相结合。从而让人可以在游戏中的到美的享受。给广大的互联网用户提供了一个娱乐,休闲,放松身心的地方。让设计师之与玩家之间产生交流,从而完善游戏。操作便捷,文件携带方便,无需安装,符合了现在很多快餐式的生活要求便于大众随时的下载,游戏。有丰富的图像,画面不受软件的限制。富有创意,风格多变。是其他电子游戏没有的。国内外研究现状及分析:目前利用开发出了许多夸平台的网络游戏,甚至可以匹敌大型MMOR,在3G时代到来以后,我们很快可以在手机上玩到大型网络游戏,现有的制作网络游戏有:SLG类(热血三国),体育类(热血球球),RPG类(凡人修真),桌面(德州扑克),TD类(保卫家园)等等.在日本和美国,动画和游戏这一类的技术超出国内比较多,日本的动漫位居世界前列是众所周知的。二、需求分析1:功能的需求弹弹乐游戏是个简单的小游戏能让游戏者的身心得到娱乐从而能够更好地投入到学习或工作当中虽然现在市面上出来这各种各样的游戏版本可是弹弹乐这类的小游戏其市场还是相当大的因为它玩法简单易行不论是手机还是小游戏机都能很顺利的运行对于在外忙碌的人不可能花费大量时间在娱乐上大型游戏是行不通的这样的小游戏刚好迎合了他们的需求。2:操作方法2.1进入游戏2.2游戏界面2.3游戏操作2.4游戏结束三、开发环境1:设计任务与需要的知识点1)通过编写弹弹乐游戏程序掌握结构化模块块化程序设计的思想培养解决实际问题的能力2)有同步播放动画声音效果2:具体完成设计内容本次课程设计需要掌握和运用如下的知识点:1数组的应用2全局变量的使用3按键处理4结构体的应用5图形音乐和动画的有关知识四、总体设计4.1设计思路这里我们首先构建一个游戏框架,然后再编写各个模块,最后组成一个完整的游戏4.2框架五、源代码#includestdio.h#includestring.h#includestdlib.h#includetime.h#includeconio.h#includewindows.h#includemmsystem.h#pragmacomment(lib,winmm.lib)#defineLEFT1#defineRIGHT30#defineTOP1#defineBUTTON22//=============================================================================//自定义结构体typedefstructPOINT//点{intx;inty;}Point;structBALL//球{intx;inty;intx_Speed;inty_Speed;intmode;//0-普通;1-实心;2-冰霜;}Ball[3];structBORD//板{intx;inty;intlength;//长度}Bord;structTREASURE//宝石{intx;inty;inttype;}Treasure;enumcolor{green,blue,red};enummode{run_Game,creat_Map};//=============================================================================//自定义函数的声明voidgotoxy(intx,inty);intmainGame();//主函数voidinitGame(intmode);//初始化游戏voidrunGame();//运行游戏voidcreatMap();//制作地图voidhelpGame();//游戏帮助voidselectMap();//选择地图voidplayGame();//游戏完成时intcheckComplete();//检测游戏是否完成voidPrintBord();//绘制木板和小球voidPrintLev();//初始化相关关卡voidMoveBord(intorientation);//移动木板voidMoveBall(intindex);//移动小球voidremoveDiamond(intindex,intdirection);//移除方块voidremoveColor(enumcolor,Pointdiamond);//解决颜色voidshowTreasure(intintRand,Pointpoint_diamond);//宝物voidmove_Treasure();//移动宝石voidget_Treasure();//获得宝石voidtime_Treasure();//宝石失效//==============================================================================//自定义全局变量、全局常量HANDLEg_hConsoleOutput;//获取控制台输出句柄shortpotVal[40][30];//0—空白,1—1级方块,2—2级方块,3—3级方块,4—围墙intlive=1;//生命intstop=0;//0-不暂停,1-暂停intspeed=1000;//速度intintGrade=0;//分数intintTreasure=0;//宝石数intgetTreasure=0;//获得宝石intlevel_Now=0;//当前关卡intlevel_Max=0;//关卡数量charfileName[100][20];//目前设置最高地图容量为100个chargame_Map[20];//游戏地图clock_ttreaTime_Last,treaTime_Now;//宝物持续时间staticconstchar*BALL_SHAPE[]={⊙,◎,●};//=============================================================================//主菜单intmain(){g_hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);//获取控制台输出句柄SetConsoleTitleA(弹弹乐----By:shw);//charchVolume[256];//longlVolume;//mciSendString(statusmovievolume,chVolume,255,0);//lVolume=strtol(chVolume,NULL,10);mciSendString(playmusic\\bg_music.mp3repeat,NULL,0,NULL);//背景音乐mciSendString(setaudiomusic\\bg_music.mp3volumeto100,NULL,0,NULL);//设置音量do{CONSOLE_CURSOR_INFOcursorInfo={1,FALSE};//光标信息SetConsoleCursorInfo(g_hConsoleOutput,&cursorInfo);//设置光标隐藏switch(mainGame())//游戏选项{case0:playGame();break;case1:creatMap();break;case2:helpGame();break;case3:selectMap();playGame();break;}}while(1);system(pausenul);return0;}//=============================================================================//主菜单intmainGame(){FILE*fMap;intch,index=0;staticconstchar*modeItem[]={☆开始游戏,☆制作关卡,☆游戏帮助,☆选择关卡};system(cls);SetConsoleTextAttribute(g_hConsoleOutput,FOREGROUND_GREEN|FOREGROUND_INTENSITY);gotoxy(15,5);printf(┏━━━━━━━┓);gotoxy(15,6);printf(┃%2s%s%2s┃,,★弹弹乐★,);gotoxy(15,7);printf(┗━━━━━━━┛);SetConsoleTextAttribute(g_hConsoleOutput,0xF0);gotoxy(16,14);printf(%2s%s%2s,,modeItem[0],);SetConsoleTextAttribute(g_hConsoleOutput,0x0F);gotoxy(16,16);printf(%2s%s%2s,,modeItem[1],);SetConsoleTextAttribute(g_hConsoleOutput,0x0F);gotoxy(16,18);printf(%2s%s%2s,,modeItem[2],);SetConsoleTextAttribute(g_hConsoleOutput,0x0F);gotoxy(16,20);printf(%2s%s%2s,,modeItem[3],);if((fMap=fopen(maps\\MapInfo.dat,r))==NULL){gotoxy(LEFT+4,TOP+2);printf(打开地图信息文件发生错误!);gotoxy(LEFT+4,TOP+4);printf(请查看MapInfo.dat文件是否存在!!!);exit(0);}while(fgets(fileName[level_Max],20,fMap)!=NULL){if(fileName[level_Max][strlen(fileName[level_Max])-1]=='\n'){fileName[level_Max][strlen(fileName[level_Max])-1]=0;}level_Max++;}fclose(fMap);level_Now=0;//默认第一个地图do{ch=getch();switch(ch){case's':case'S':case'2':case80://下if(index==0){index=1;SetConsoleTextAttribute(g_hConsoleOutput,0x0F);gotoxy(16,14);printf(%2s%s%2s,,modeItem[0],);SetConsoleTextAttribute(g_hConsoleOutput,0xF0);gotoxy(16,16);printf(%2s%s%2s,,modeItem[1],);}elseif(index==1){index=2;SetConsoleTextAttribute(g_hConsoleOutput
本文标题:C语言产品计划报告书
链接地址:https://www.777doc.com/doc-457971 .html