c语言拍飞虫课程设计报告,C++语言课程计一拍飞虫.doc

C语言课程计一拍飞虫

C++语言课程设计一拍飞虫

一、实验内容

玩家通过控制拍子拍打飞虫获取分数。

要求如下:

游戏的初始界面如图一,单击空格键即可进入游戏。进入游戏后的界面如图二。左上角有两个记录游戏数据标示。上面一个是记录游戏剩余时间,下面一个是记录本局的游戏分数。下面也有五个记录游戏数据的标示,从左到右分别是记录各局游戏分数分数最高的前五个。

图 一

图 二

移动鼠标可以控制拍子的移动,单击鼠标左键可以控制拍子拍打动作。

游戏开始的时候,系统随机生成12个虫子,其中大虫子5个,小虫子7个,每打死一个大虫子获得1分,打死一个小虫子获得2分。游戏的分数会实时的显示在左上角。

二、实验指南

实验一 开始实验

【实验任务】

步骤一、打开FunCode,创建一个的C++语言项目;

步骤二、导入KillFeiChong模板。

【实验思路】

按实验指导完成。

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

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

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

图 一 图 二

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

实验二 移动拍子

【实验内容】

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

步骤二、初始化游戏数据

步骤三、移动拍子

【实验思路】

获取系统响应键盘按下的消息函数的数据,如果是空格键则进入游戏界面,初始化游戏数据。同时获取鼠标的坐标,设置为拍子精灵的坐标。

【实验指导】

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

CSprite*m_pPaizi;//拍子精灵

CSprite*m_pKaishi;//空格开始精灵

floatm_fGameTime;// 本局游戏剩余时间

CTextSprite*m_pTime; //显示时间文字编辑精灵

CTextSprite*m_pScore;//显示分数文件编辑精灵

floatm_fPosX;//拍子精灵的x坐标

floatm_fPosY;//拍子精灵的y坐标

intm_iGameScore;// 本局游戏当前积分值

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

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

m_fGameTime=0.f;

m_iGameScore=0;

m_fPosX=0.f;

m_fPosY=0.f;

m_pKaishi=new CSprite("kaishi");

m_pPaizi=new CSprite("paizi");

m_pTime=new CTextSprite("Time");

m_pScore=new CTextSprite("Score");

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

m_fPosX=m_pPaizi->GetSpritePositionX();

m_fPosY=m_pPaizi->GetSpritePositionY();

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

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

voidOnKeyDown( const int iKey, const int bAltPress, const int bShiftPress, const int bCtrlPress );

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

void CGameMain::OnKeyDown( const int iKey, const int bAltPress, const int bShiftPress, const int bCtrlPress )

{

}

首先要判断得到的键盘键值是不是空格键,以及游戏的状态是不是等待开始状态,是的话则设置游戏状态为初始化,更新分数显示和游戏剩余时间,隐藏空格开始精灵和鼠标。在上面的函数定义里面添加如下的代码:

if( KEY_SPACE == iKey && 0 == m_iGameState )

{

m_iGameState =1;

m_iGameScore=0;

m_fGameTime=5.f; //游戏总共的时间

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

m_pScore->SetTextValue(m_iGameScore);

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值