C++语言课程设计一拍飞虫Word下载.docx

上传人:b****2 文档编号:14866054 上传时间:2022-10-25 格式:DOCX 页数:19 大小:1.86MB
下载 相关 举报
C++语言课程设计一拍飞虫Word下载.docx_第1页
第1页 / 共19页
C++语言课程设计一拍飞虫Word下载.docx_第2页
第2页 / 共19页
C++语言课程设计一拍飞虫Word下载.docx_第3页
第3页 / 共19页
C++语言课程设计一拍飞虫Word下载.docx_第4页
第4页 / 共19页
C++语言课程设计一拍飞虫Word下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C++语言课程设计一拍飞虫Word下载.docx

《C++语言课程设计一拍飞虫Word下载.docx》由会员分享,可在线阅读,更多相关《C++语言课程设计一拍飞虫Word下载.docx(19页珍藏版)》请在冰豆网上搜索。

C++语言课程设计一拍飞虫Word下载.docx

步骤二、导入KillFeiChong模板。

【实验思路】

按实验指导完成。

1、打开FunCode,点击“项目”菜单,选择“创建C++工程”

注意:

工程名名称要求字母开头,只能包含字母和数字,且名字中间不能有空格。

2、点击菜单“项目”中的“导入地图模块”,如图一。

跳出一个对话框,选中“KillFeiChong”模板,点击“导入到工程”按钮,如图二。

图一图二

3、导入成功后的,界面如下图所示:

实验二移动拍子

【实验内容】

步骤一、单击空格键开始游戏

步骤二、初始化游戏数据

步骤三、移动拍子

获取系统响应键盘按下的消息函数的数据,如果是空格键则进入游戏界面,初始化游戏数据。

同时获取鼠标的坐标,设置为拍子精灵的坐标。

【实验指导】

1、进入LessonX.h中,添加如下的成员变量声明:

CSprite*m_pPaizi;

//拍子精灵

CSprite*m_pKaishi;

//空格开始精灵

floatm_fGameTime;

//本局游戏剩余时间

CTextSprite*m_pTime;

//显示时间文字编辑精灵

CTextSprite*m_pScore;

//显示分数文件编辑精灵

floatm_fPosX;

//拍子精灵的x坐标

floatm_fPosY;

//拍子精灵的y坐标

intm_iGameScore;

//本局游戏当前积分值

2、进入LessonX.cpp中添加以上变量的初始化代码:

1)在构造函数中添加如下代码:

m_fGameTime=0.f;

m_iGameScore=0;

m_fPosX=0.f;

m_fPosY=0.f;

m_pKaishi=newCSprite("

kaishi"

);

m_pPaizi=newCSprite("

paizi"

m_pTime=newCTextSprite("

Time"

m_pScore=newCTextSprite("

Score"

2)在GameInit中获取拍子的初始位置:

m_fPosX=m_pPaizi->

GetSpritePositionX();

m_fPosY=m_pPaizi->

GetSpritePositionY();

3、要实现单击空格键进入游戏,就需要添加一个自定义函数处理系统键盘按下事件中得到的数据。

1)进入LessonX.h中添加自定义函数OnKeyDown的声明:

voidOnKeyDown(constintiKey,constintbAltPress,constintbShiftPress,constintbCtrlPress);

2)进入LessonX.cpp中添加该函数的定义代码:

voidCGameMain:

:

OnKeyDown(constintiKey,constintbAltPress,constintbShiftPress,constintbCtrlPress)

{

}

3)首先要判断得到的键盘键值是不是空格键,以及游戏的状态是不是等待开始状态,是的话则设置游戏状态为初始化,更新分数显示和游戏剩余时间,隐藏空格开始精灵和鼠标。

在上面的函数定义里面添加如下的代码:

if(KEY_SPACE==iKey&

&

0==m_iGameState)

{

m_iGameState=1;

m_iGameScore=0;

m_fGameTime=5.f;

//游戏总共的时间

//更新当前游戏积分显示(清零上一局积分显示值)

m_pScore->

SetTextValue(m_iGameScore);

//更新当前游戏剩余时间显示,由于游戏刚开始,所以直接设置为g_fMaxGameTime

m_pTime->

SetTextValue(m_fGameTime);

//隐藏"

按空格开始游戏"

这个提示图片

m_pKaishi->

SetSpriteVisible(false);

//隐藏鼠标

CSystem:

ShowCursor(false);

}

4)最后在Main.cpp中的OnKeyDown函数里面添加对我们自定义函数的调用:

g_GameMain.OnKeyDown(iKey,bAltPress,bShiftPress,bCtrlPress);

4、游戏初始化之后,每次系统刷新界面的时候对游戏总共的时间m_fGameTime减去一个fDeltaTime,这样整体效果是游戏时间在不断的减少,判断游戏时间如果小于0,则游戏结束,回到空格开始界面。

如果不是,则在地图的左上角消失当前剩余的时间。

在GameRun函数里面添加如下代码:

1)游戏总时间减少:

m_fGameTime-=fDeltaTime;

2)判断游戏时间是否大于0,是的话,显示游戏剩余时间:

if(m_fGameTime>

0)

SetTextValue((int)m_fGameTime);

}

3)如果游戏时间小于等于0,则设置游戏状态为等待开始,添加如下代码:

else{

m_iGameState=0;

SetSpriteVisible(true);

m_fGameTime=0.f;

ShowCursor(true);

m_pPaizi->

SetSpritePosition(m_fPosX,m_fPosY);

5、要使拍子随鼠标移动,则要通过系统获取到鼠标的坐标位置,然后用SetSpritePosition设置拍子精灵的位置即可。

1)进入LessonX.h中添加我们的自定义函数声明:

voidOnMouseMove(constfloatfMouseX,constfloatfMouseY);

2)进入LessonX.cpp中添加该函数的定义:

OnMouseMove(constfloatfMouseX,constfloatfMouseY)

3)如果当前游戏状态是初始化或者正在进行中,则将鼠标位置赋给拍子,在上面的函数中添加如下代码:

if(m_iGameState==1||m_iGameState==2)

SetSpritePosition(fMouseX,fMouseY);

4)在Main.cpp中的OnMouseMove函数中添加对我们自定义函数的调用:

g_GameMain.OnMouseMove(fMouseX,fMouseY);

实验三拍子模拟拍打动作

步骤一、拍子模拟拍打飞虫的动作

在系统鼠标单击函数里面处理拍子拍打动作。

设置拍子角度改变,同时设置一个动作时间,在游戏过程中不断减少该时间的值,如果改值为0,则恢复拍子的角度,这样整体的效果就是拍打的动作。

1、进入LessonX.h中添加下面的成员变量声明:

floatm_fRotateTime;

//拍子拍下后距离复位还差多少时间

floatm_fOldRotation;

//拍子的初始角度

2、在LessonX.cpp的构造函数中初始化以上的成员变量:

m_fRotateTime=0.f;

m_fOldRotation=0.f;

3、获取拍子的初始角度并保存,在GameInit中添加下面一行代码:

m_fOldRotation=m_pPaizi->

GetSpriteRotation();

4、添加一个自定义函数来处理拍子角度改变的动作。

1)在LessonX.h中添加自定义函数的声明:

voidOnMouseClick(constintiMouseType,constfloatfMouseX,constfloatfMouseY);

2)在LessonX.cpp中添加该函数的定义:

OnMouseClick(constintiMouseType,constfloatfMouseX,constfloatfMouseY)

3)判断游戏的状态是否是初始化或者进行中,是的话则改变拍子的角度,设置一个拍下的动作时间。

在上面的函数定义中添加以下代码:

SetSpriteRotation(m_fOldRotation-10);

m_fRotateTime=0.2f;

}

4)在Main.cpp中的OnMouseClick函数中添加对自定义函数的调用:

g_GameMain.OnMouseClick(iMouseType,fMouseX,fMouseY);

5、在游戏中判断拍子拍下后,动作时间是否达到了0,是的话恢复拍子的角度。

在GameRun的if(m_fGameTime>

0)判断里面添加下面的代码:

if(m_fRotateTime>

{

m_fRotateTime-=fDeltaTime;

if(m_fRotateTime<

=0)

{

m_pPaizi->

SetSpriteRotation(m_fOldRotation);

}

6、为了让游戏时间长一点,这样我们可以方便测试实验目的是否达到,我们可以将LessonX.cpp的OnKeyDown中将游戏时间设置为m_fGameTime=15.f;

至此,本实验结束。

实验四模拟拍打飞虫

步骤一、创建飞虫精灵

步骤二、判断拍子是否打中飞虫

步骤三、改变飞虫位置

创建一个飞虫精灵,使它从世界边界的一侧飞到令一侧,如果碰到世界边界,则随机改变飞虫的位置,从世界边界的另一个位置出现,循环上述动作。

飞虫飞行过程中,判断飞虫的中心点是否在拍子精灵中,如果是则中断飞行动作,随机从世界边界另一个位置出现,这样就实现了拍子拍打飞虫的效果了。

1、进入LessonX.h中添加如下的成员变量声明:

floatm_fScreenLeft;

//屏幕的4个边界值:

上下左右

floatm_fScreenRight

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1