c语言课程设计坦克大战,funcodec++课程设计_坦克大战

《funcodec++课程设计_坦克大战》由会员分享,可在线阅读,更多相关《funcodec++课程设计_坦克大战(24页珍藏版)》请在人人文库网上搜索。

1、课程设计一 坦克大战一、游戏介绍相信大部分同学都玩过或看过“坦克大战”这款经典游戏。现在, 就由我们自己动手来开发它。只要大家具备了 C+语言和面向对象的基础知识,然后按照实验指南的指导一步一 步进行下去,相信我们每个同学都能把这款经典游戏做出来。、实验目标综合运用C+及其面向对象的知识开发一款小游戏。三、实验内容在一个战场上, 玩家控制坦克, 消灭敌方坦克,并防止敌方坦克摧毁我方基地。游戏的 具体要求如下:1、游戏有一个初始页面,如下图。2、按下任意键开始游戏,玩家控制坦克在战场上穿梭,碰到墙时,不能通过。3、敌方坦克自由移动,每隔 2 秒改变一个方向,每隔 3 秒发射一发子弹。4、敌方坦克。

2、每隔 5 秒出现一辆,从屏幕上方的左、中、右三个位置依次出现。5、 当玩家被消灭或者我方基地被摧毁或者游戏时间大于30 秒的时候,游戏结束。游戏开始前进入游戏四、游戏的整体框架五、实验指南实验准备打开Fun Code,创建一个新的 C+项目。注意:项目名称必须为英文和数字,且不能有 空格。点击“项目”7“导入地图模板”,从对话框中选取名称为Ta nkWar的模板导入。导入成功后,界面如下:实验一游戏开始【实验内容】1、设置游戏标题2、按空格键,提示图片消失,游戏进入开始状态【实验运行结果】游戏开始前按下空格键后【实验思路】按下空格键是键盘按下事件,可在CSystem:OnKeyDown函数中编。

3、写响应代码。 为了保证程序结构的清晰、一致,更好的办法是在CGameMair类中添加一个相应的键盘按下事件处理 函数,然后在 CSystem:O nM ouseClick函数中进行调用。g_GameMain是CGameMair类的对象,它是全局变量,在程序运行时最先被创建。【实验指导】1、 C+程序的执行入口是主函数。FunCode的主函数名称叫WinMain,写在文件中。CSystem:SetWi ndowTitle是设置程序运行窗口标题的函数,修改如下:CSystem:SetWindowTitle(坦克大战”);2、参考 CSystem:OnKeyDown 函数,为 CGameMain类创。

4、建一个 OnKeyDown函数。CGameMain类的头文件是文件,实现代码写在文件中。因此,先在文件对函数进行 声明。函数的返回值和参数列表都与CSystem:OnKeyDown函数保持一致。访问权限应该是public。代码如下:void On KeyDow n( const int iKey, const bool bAltPress, const bool bShiftPress, const bool bCtrlPress );3、接着,在文件中对该函数进行定义:void CGameMa in :0 nKeyDow n( const int iKey, const bool bAltP。

5、ress, const bool bShiftPress, const bool bCtrlPress )4、 在 CSystem:OnKeyDown函数(文件中)调用CGameMain:OnKeyDown函数,并将自己的参数传递给该函数。g_GameMain是是CGameMair类的对象,它是全局变量,在 程序运行时最先被创建。因此,我们可以用g_GameMain调用自己的成员函数OnKeyDown(iKey, bAltPress, bShiftPress, bCtrlPress);5、Fu nCode程序运行时,当发生键盘按下事件,程序首先调用并执行CSystem:OnKeyDown 函数。

6、,然后由 CSystem:OnKeyDown 函数调用 并执行 CGameMain:OnKeyDown函数。因此,键盘按下事件的响应代码我们在 CGameMai n:O nKeyDown函数中编写即可。6、 我们要处理的两个精灵如下图,它们的名称分别是splash和start。我们需要创建两个CSprite类对象与这两个精灵绑定。7、在CGameMair类中声明两个 CSprite*类型,根据面向对象的封装性原理,成员变量的访问权限应该是 private。代码应该写在哪个文件,请参看前面的实验步骤。CSprite* m_pSplash;CSprite* m_pStart;在CGameMair类。

7、的构造函数中,对上面两个指针变量进行初始化。通过调用CSprite 的构造函数,将精灵和精力对象绑定在一起。m_pSplash= new CSprite(splash);m_pStart= new CSprite(start);8、最后,我们在 CGameMai n: :O nKeyDown函数中处理空格键按下事件。if( 0 =GetGameState()if(iKey =KEY_SPACE)mi_iGameState = 1;KEY_SPAC是枚举变量 KeyCodes的成员,表示空格键。 KeyCodes定义在文件中。 该枚举变量定义了全部的键盘值。注意:必须将 m_iGameState。

8、的值改为1。当GameMainLoop函数再次执行时,根据mGameState的值调用并执行Gamelnit函数, 游戏进入开始状态。进入游戏开始状态时,调用CSprite类的SetSpriteVisible 函数将精灵图片设置为不可见。在Gamelnit函数中添加代码:m_pSplash-SetSpriteVisible(false); m_pStart-SetSpriteVisible(false);9、程序执行完 CGameMain:Gamelnit 函数后,执行 CGameMain: SetGameState(2),将mGameState的值改为2,游戏进入运行状态。10、 在CGam。

9、eMain类的析构函数中delete本实验创建的指针对象,以释放分配的内存。CGameMain:CGameMain()delete m_pSplash;delete m_pStart;11、编译并运行程序,然后按下空格键,看看运行效果。实验二 坦克运动【实验内容】1、创建坦克类 CTankPlayer ;2、游戏开始时,将坦克放置于 (0,0) 的坐标上;3、通过按键WSAD控制坦克上下左右运动;4、坦克运行到黑色区域边界时不能继续前进。实验运行结果】在区域内运动运动到区域边界【实验思路】 坦克也是精灵, 但是它具备一些自己独特的功能, 比如通过键盘控制运动、 开炮等。因 此我们可以创建一个新。

10、的类 CTankPlayer 类,并让它继承 CSprite 类。通过WASD键,控制坦克做相应的的上左下右运动。按下某个键,给坦克设置相应方向 的运动速度;松开时,将该方向的速度设为0,表示停止运动。屏幕上最内部的黑色区域为玩家坦克的活动区域,左上角坐标为(-26,-22) ,右下角坐标为 (26,22) 。当坦克运动到该区域边界时,坦克不能继续前进。【实验指导】1、通过类向导创建 CTankPlayer 类,其继承于 CSprite 类。以 VC+ 为例: 第一步、点击菜单“插入” - “新建类”。第二步、在“ New Class ”对话框中输入类名和父类名。第三步、点击Change”按钮。

11、,在新对话框中修改 CTankPlayer类的头文件和 cpp 文件的路径。将头文件保存到项目文件夹的 SourceCodeHeader 文件夹中,将 cpp 文件保 存到项目文件夹下的 SourceCodeSrc 文件夹中。这里需要特别注意的是创建文件路径的问题,所有的 .h 头文件应该在项目文件夹 SourceCodeHeader 中 , 所 有 的 .cpp 源 文 件 应 该 放 在 项 目 文 件 夹 下 的 SourceCodeSrc 文件夹中。2、为 CTankPlayer 类添加 m_iDir,m_fSpeedX,m_fSpeedY , m_iHp 四个成员变量(成员 变量。用。

12、

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明 基于C语言 C++开发的系统项目 课程设计 毕业设计 供参考 源代码+说明
Funcode编程C++实现坦克大战游戏课程设计 1.内容 在一个战场上,玩家控制坦克,消灭敌方坦克,并防止敌方坦克摧毁我方基地。 2.任务和要求 1).游戏有一个初始游戏页面。 2).按下任意键开始游戏,玩家控制坦克在战场上穿梭,碰到墙时,不能通过。 3).敌方坦克自由移动,每隔2秒改变一个方向,每隔3秒发射一发子弹。 4).敌方坦克共有20辆,每隔5秒,从屏幕上方的左、中、右三个位置依次出现。 5).当玩家被消灭或者我方基地被摧毁时,游戏结束。 二、设计思路 1.数据结构 CSprite* m_pSplash;//开始的静态图 CSprite* m_pStart;//开始的静态图画 CTankPlayer* m_pTankplayer;//指向我方坦克的指针 CBullet* m_pBullet;//指向子弹的指针 CWeapon* m_pAim_nor;//家 流程图: case 2 case1 case3 (此处略去部分文件内容) 2.算法 定义了四个类,他们分别是子弹类(用来描述子弹的移动,碰撞等),敌方坦克类(用来描述敌方坦克的移动,碰撞等),我方坦克类(用来描述我方坦克的移动,碰撞等),武器类(作为子弹类,敌方坦克类,我方坦克类的基类。) CGameMain::CGameMain()构造函数: 完成初始化工作: 1、为指针数据分配内存空间,普通数据设置初值。 2、初始化精灵类start,对应“空格开始”精灵。 CGameMain::GameMainLoop(float fDeltaTime ) 游戏的主循环,根据游戏的状态切换逻辑 1、当游戏状态为0时,主循环一直循环,但不做处理,而是等待空格键按下,开始游戏。 2、当游戏状态为1时,调用GameInit()方法初始化游戏,然后置游戏状态为2。 3、当游戏状态为2时: 1.调游戏进行中,处理各种游戏逻辑 2.修改游戏结束状态为结束 (查看超全完整文件请下载观看,良心文档谢谢您的支持!)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值