c语言课程设计_桌球

c语言课程设计_桌球

ID:11033831

大小:1.87 MB

页数:13页

时间:2018-07-09

c语言课程设计_桌球_第1页
c语言课程设计_桌球_第2页
c语言课程设计_桌球_第3页
c语言课程设计_桌球_第4页
c语言课程设计_桌球_第5页
资源描述:

《c语言课程设计_桌球》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言课程设计--桌球一、实验内容玩家通过移动球杆到单一的桌球处碰撞桌球运动,当桌球于一定速度通过桌面右方的同样颜色的球洞后,则该球进洞,在桌面左边重新分配新球开始游戏。要求如下:1.游戏的初始界面如下,其中左边有一个体积较小的桌球,其x方向位置固定,y方向位置随机。右边有八个颜色不一样,体积较大的球洞,游戏的目的是使用左边的桌球以一定小的速度穿过右边同样颜色的球洞就算桌球进洞,然后重新分配新球。2.球杆随鼠标运动而运动,单击球杆,桌球获取一个前进的速度同时往前有运动。桌球的前进方向有一段指示球运动方向的虚线。3.右侧的球洞以移动的频率不断更换位置。球洞的x

2、左边不变,更换的是y坐标的位置,即每一轮中每一个球洞移动到下一个球洞的位置,最下边的球洞则移动到第一个球洞位置。所以的这些动作都要在一个频率的时间里面完成。因此当游戏一某一个频率进行的时候,右侧的球洞就能实现循环变化的效果。4.球碰撞到桌面边沿的时候以发射角的角度弹走。5.球进洞的判断是球以一定的速度通过同样颜色的球洞时,桌球消失,表明球进洞了,此时左侧随机生成新球。球运动到球洞的速度不能太大,太大则球直接运动过球洞,如果速度太小,则球同样不进洞。二、实验指南实验一开始实验【实验任务】步骤一、打开FunCode,创建一个的C++语言项目;步骤二、导入snoo

3、ker模板。【实验思路】按实验指导完成。【实验指导】1、打开FunCode,点击“项目”菜单,选择“创建C语言工程”注意:工程名名称要求字母开头,只能包含字母和数字,且名字中间不能有空格。2、点击菜单“项目”中的“导入地图模块”,如图一。跳出一个对话框,选中“snooker”模板,点击“导入到工程”按钮,如图二。图一图二3、导入成功后的,界面如下图所示:实验二初始化桌球和球杆同时在球的前进方向画虚线【实验内容】步骤一、设置球的初始位置,球杆的初始朝向步骤二、设置球杆随鼠标移动步骤三、在球的前进方向上画虚线【实验思路】在设置初始球的时候要考虑随机本局的球数字,

4、如果和上一局的不一致,则将上局的球拉到屏幕外,将本局的球拉到屏幕内,在Y向上随机摆放球的出生位置,只随机Y方向坐标,不动X方向。对于球杆则通过系统的dOnMouseMove函数获取到鼠标移动时的坐标位置,然后使用dSetSpritePosition函数同步设置桌球精灵的位置。通过获取球的X和Y坐标,并求两个坐标平方和的平方根来得到球运动方向向量的大小,利用循环调用系统画线函数画虚线。【实验指导】1.在Main.cpp中,初始化几个全局变量,代码如下://游戏玩法设计:上方有8个球洞,分别是数字0-7,球洞间的数字按一定速率滚//动,每局球都随机一个0-7的数

5、字,对应的数字打入对应的球洞才胜利,开始打球//状态g_iPlayState=0;g_fRotateTime=0.f;g_fHoleRollTime=0.f;2.初始化精灵://使用循环,给数组赋值://将数组的8个值分别赋值0-7即可,无需随机。名字使用dMakeSpriteName分//别产生,为BallHole0-BallHole7//球洞精灵预先摆放在场景中,因此不需要创建intiLoop=0;for(iLoop=0;iLoop<8;iLoop++){g_iHoleNumber[iLoop]=iLoop;strcpy(g_szHoleName[iLo

6、op],dMakeSpriteName("BallHole",iLoop));}1.在Main.cpp中填写球和球杆的初始化代码。//随机本局的球数字,如果和上一局的不一致,则将上局的球拉到屏幕外,将本//局的球拉到屏幕内intiNewBallNumber=dRandomRange(0,7);if(iNewBallNumber!=g_iBallNumber){dSetSpritePositionY(g_szBallName,50.f);//新球,移动到屏幕中g_iBallNumber=iNewBallNumber;strcpy(g_szBallName,dM

7、akeSpriteName("Ball",g_iBallNumber));dSetSpritePositionX(g_szBallName,-30.f);}//在Y向上随机摆放球的出生位置,只随机Y方向坐标,不动X方向intiPosY=dRandomRange(-25,25);dSetSpritePositionY(g_szBallName,(float)iPosY);//获取球拍的初始朝向,只做一次staticintiInited=0;if(!iInited){iInited=1;g_fOldRotation=dGetSpriteRotation("Bal

8、lCue");}2.设置球杆随鼠标移动而移动。首先通

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。