没有合适的资源?快使用搜索试试~ 我知道了~
04FunCode游戏设计+C++课程设计_桌球+.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 4 浏览量
2023-04-03
21:41:31
上传
评论 1
收藏 1.2MB PDF 举报
温馨提示
试读
14页
。
资源推荐
资源详情
资源评论
C++语言课程设计一桌球
一、实验内容
玩家通过移动球杆到单一的桌球处碰撞桌球运动,当桌球于一定速度通过桌面右方的同
样颜色的球洞后,则该球进洞,在桌面左边重新分配新球开始游戏。要求如下:
1. 游戏的初始界面如下,其中左边有一个体积较小的桌球,其 x 方向位置固定,y 方
向位置随机。右边有八个颜色不一样,体积较大的球洞,游戏的目的是使用左边的
桌球以一定小的速度穿过右边同样颜色的球洞就算桌球进洞,然后重新分配新球。
2.
3.
4.
5.
球杆随鼠标运动而运动,单击球杆,桌球获取一个前进的速度同时往前有运动。桌
球的前进方向有一段指示球运动方向的虚线。
右侧的球洞以移动的频率不断更换位置。球洞的 x 左边不变,更换的是 y 坐标的位
置,即每一轮中每一个球洞移动到下一个球洞的位置,最下边的球洞则移动到第一
个球洞位置。所以的这些动作都要在一个频率的时间里面完成。因此当游戏一某一
个频率进行的时候,右侧的球洞就能实现循环变化的效果。
球碰撞到桌面边沿的时候以发射角的角度弹走。
球进洞的判断是球以一定的速度通过同样颜色的球洞时,桌球消失,表明球进洞了,
此时左侧随机生成新球。球运动到球洞的速度不能太大,太大则球直接运动过球洞,
如果速度太小,则球同样不进洞。
二、实验指南
实验一开始实验
【实验任务】
步骤一、打开 FunCode,创建一个的 C++语言项目;
步骤二、导入 snooker 模板。
【实验思路】
按实验指导完成。
【实验指导】
1、 打开 FunCode,点击“项目”菜单,选择“创建 C++工程”
注意:工程名名称要求字母开头,只能包含字母和数字,且
名字中间不能有空格
。
2、 点击菜单“项目”中的“导入地图模块”,如图一。跳出一个对话框,选中“snooker”
模板,点击“导入到工程”按钮,如图二。
图 一 图 二
3、导入成功后的,界面如下图所示:
实验二初始化桌球和球杆同时在球的前进方向画虚线
【实验内容】
步骤一、设置球的初始位置,球杆的初始朝向
步骤二、设置球杆随鼠标移动
步骤三、在球的前进方向上画虚线
【实验思路】
在设置初始球的时候要考虑随机本局的球数字,如果和上一局的不一致,则将上局的球
拉到屏幕外,将本局的球拉到屏幕内,在Y 向上随机摆放球的出生位置,只随机 Y 方向
坐标,不动 X 方向。对于球杆则通过系统的 OnMouseMove 函数获取到鼠标移动时的坐
标位置,然后使用 SetSpritePosition 函数同步设置桌球精灵的位置。通过获取球的 X 和 Y
坐标,并求两个坐标平方和的平方根来得到球运动方向向量的大小,利用循环调用系统
画线函数画虚线。
【实验指导】
1. 进入 LessonX.h,添加 CGameMain 的成员变量,前面几个实验之后我们知道了类的
成员变量一般设置访问属性为 private,代码如下:
int m_iPlayState;// 操作状态,0 -- 可以点击鼠标打球;1 -- 球在运动中,等待下次打球
机会
int m_iBallNumber; // 每局从 0-7 随机一个颜色图片,作为本局的球
float m_fOldRotation;
m_spBall[8];
m_spBallCue;
// 球杆的初始朝向,用于球杆复位
// 8 个球的精灵
//球杆精灵
CSprite*
CSprite*
2. 进入 LessonX.cpp 中,在构造函数里面先把 m_iGameState 的值由 0 改为 1。
然后填写初始化代码:
剩余13页未读,继续阅读
资源评论
คิดถึง643
- 粉丝: 3934
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功