欢迎来到毕设资料网! | 帮助中心 毕设资料交流与分享平台
毕设资料网
全部分类
  • 毕业设计>
  • 毕业论文>
  • 外文翻译>
  • 课程设计>
  • 实习报告>
  • 相关资料>
  • ImageVerifierCode 换一换
    首页 毕设资料网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言课程设计--桌球

    • 资源ID:1402253       资源大小:1.87MB        全文页数:13页
    • 资源格式: DOC        下载积分:100金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    下载资源需要100金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

    C语言课程设计--桌球

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

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

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

    4、置球的初始位置,球杆的初始朝向 步骤二、设置球杆随鼠标移动 步骤三、在球的前进方向上画虚线 【实验思路】 在设置初始球的时候要考虑随机本局的球数字, 如果和上一局的不一致, 则将上局的球 拉到屏幕外,将本局的球拉到屏幕内,在 Y 向上随机摆放球的出生位置,只随机 Y 方向 坐标, 不动 X 方向。 对于球杆则通过系统的 dOnMouseMove 函数获取到鼠标移动时的坐 标位置,然后使用 dSetSpritePosition 函数同步设置桌球精灵的位置。通过获取球的 X 和 Y 坐标,并求两个坐标平方和的平方根来得到球运动方向向量的大小,利用循环调用系 统画线函数画虚线。 【实验指导】 1.

    5、在 Main.cpp 中,初始化几个全局变量,代码如下: / 游戏玩法设计:上方有 8 个球洞,分别是数字 0-7,球洞间的数字按一定速率滚 / 动,每局球都随机一个 0-7 的数字,对应的数字打入对应的球洞才胜利,开始打球 / 状态 g_iPlayState = 0; g_fRotateTime = 0.f; g_fHoleRollTime = 0.f; 2. 初始化精灵: / 使用循环,给数组赋值: / 将数组的 8 个值分别赋值 0-7 即可,无需随机。名字使用 dMakeSpriteName 分 / 别产生,为 BallHole0 - BallHole7 / 球洞精灵预先摆放在场景中,

    6、因此不需要创建 int iLoop = 0; for( iLoop = 0; iLoop B 减去 A 得到一条由 A 指向 B 的向量。 /下面的计算,得到一条球杆坐标指向球坐标的向量 float fVectorX = fBallPosX - fCuePosX; float fVectorY = fBallPosY - fCuePosY; 3) 判断球和球杆不重合的时候就执行画线操作。所以还需要在上面的代码后面添 加一个 if 的判断,同时计算向量(fVectorX,fVectorY)的大小,以及将该向量 单位化: if( fVectorX 0.001f | fVectorX 0.001f | fVectorY 0; iLoop- ) g_iHoleNumberiLoop = g_iHoleNumberiLoop - 1; / 先保存需要更改坐标的精灵的 Y 坐标作为下一个精灵的坐标,然后再给它 / 赋值 fTempPosY = dGetSpritePositionY( g_szHoleNameiLoop - 1


    注意事项

    本文(C语言课程设计--桌球)为本站会员(毕***)主动上传,毕设资料网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请联系网站客服QQ:540560583,我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们
    本站所有资料均属于原创者所有,仅提供参考和学习交流之用,请勿用做其他用途,转载必究!如有侵犯您的权利请联系本站,一经查实我们会立即删除相关内容!
    copyright@ 2008-2025 毕设资料网所有
    联系QQ:540560583