您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > cocos2d-x游戏设计实训指导书
广州康大职业技术学院计算机系《cocos2d-x游戏设计》实训指导书目录绪论实训一飞机大战发环境、获游戏开发资源实训二飞机大战游戏的创建以及飞机和子弹的添加实训三飞机大战中触屏事件实现实训四飞机大战碰撞检测实训五飞机大战背景音乐绪论一、实训任务本课程是游戏软件专业基础课程。其任务是让学生学习cocos2d-x游戏引擎的使用,通过制作一个飞机大战游戏,来熟悉游戏开发流程。以提出问题、思考问题、解决问题、发现新问题、思考新问题并解决新问题的方式来锻炼学生的思维方式和编程思想。培养学生策划与实施项目的能力。培养学生交流与合作的能力二、实训目标知识目标(1)制作游戏背景;(2)制作飞机和子弹的精灵;(3)碰撞事件的处理(4)设计游戏的统计系统;(5)设计特效和道具。职业目标(1)培养学生谦虚、好学的品质;(2)培养学生勤于思考、做事认真的良好作风;(3)培养学生良好的职业道德;(4)培养按时、守时的软件交付观念;(5)培养阅读设计文档、编写程序文档的能力。技能目标(1)培养学生良好的自我表现、与人沟通的能力;(2)培养学生的团队协作精神;(3)培养学生分析问题、解决问题的能力;(4)培养学生勇于创新、敬业乐业的工作作风;(5)培养学生的质量意识、安全意识;(6)培养学生诚实、守信、坚忍不拔的性格;(7)培养学生自主、开放的学习能力。三、实训考核评定平时出勤20分,游戏演示40分,实训报告及源程序40分。1.“优秀”标准:85-100分2.“良好”标准:70-84分3.“及格”标准:60-70分4.“不及格”标准:0-59分实训一一、实训目的与要求让学生能够自己在电脑上配置好我们实训所需要的开发环境,主要包括软件的下载和安装,环境的配置,求每个学生都能够独立完成。并且老师在实训前把准备好的实训资料,实训所需图片都发给学生。二、实训环境(一)实训设备配置比较高的电脑(S2005)(二)实训软件1.vs20122.cocos2d-x3.0版本3.cocos2d-ide最新版本4.cygwin5androidndk6.jdk,eclipse,androidadt(三)实训场地实训楼3005三、实训准备1.准备好电脑2.下载好所需软件3.下载并制作好所需图片四、实训内容及过程1.1.安装VS2012这是微软开发的集成开发环境,也是cocos2d-x的C++主战场,1.2.安装CygwinCygwin是windows平台上运行Linux的模拟环境,对于从Linux到Windows的应用程序移植,或者是使用GNU工具集在Windows上进行嵌入式开发都非常有用。可以通过在线安装,也可以离线进行安装,我们这里主要用来进行cocos2d-x跨平台(安卓)的交叉编译。1.3.安装JavaJava是Android支持的编程语言,也是安卓环境搭建的基础。主要麻烦的地方是环境变量的设置。下载地址:安装带AndroidADT的EclipseEclipse集成开发环境是用以androidapp,当然也可以进行C++的开发,只要你安装相应的组件即可。安装AndroidADT就可以进行Androidapp的开发,这里选择直接使用谷歌提供的打包好AndroidADT的Eclipse,就免去了ADT的安装等操作。下载地址:安装完成后,通过SDK管理器下载相应SDK版本就可以了。1.5.安装AndroidNDKAndroidNDK是Android系统对外提供的基于C++接口的软件工具包,它集成了交叉编译器,只要修改相应的编译脚本文件就可以创建出so文件,且自动将其与Androidapp进行打包。下载地址:使用方式:进入Eclipse→Windows→Preferences→Android→NDK→选择所在的路径。需注意的是,有些较高NDK版本在和cocos2d-x配合编译的时候会出现问题。所以各个工具之间应选择可兼容的。1.6.安装cocos2d-xcocos2d-x引擎这里就不再介绍了,国内官网是。下载地址:安装方式:(1)点击build-win32.bat,用来编译cocos2d-x文件。(2)点击install-templates-msvc.bat,用来安装VS模版(向导)。(3)create-android-project.bat,用来创建Andorid工程,在使用之前要先对其内容进行配置(Cygwin路径,AndroidSDK路径,AndroidNDK路径)五、实训总结部分游戏展示实训二一、实训目的与要求实现游戏项目的创建,并且能够使用cocos2d-x游戏引擎的基本类和接口,完成导演、场景、图层、精灵的实例化。要求学生能够在老师的带领下,完成基本的项目构建,类的使用。二、实训环境(一)实训设备配置比较高的电脑(S2005)(二)实训软件Vs2012(三)实训场地实训楼3005三、实训准备1.准备好效果图四、实训内容及过程1.创建飞机大战项目工程,基本的类和方法的创建如下:1.创建GameScene类继承于CCScene。2.创建GameLayer类继承于CCLayer。3.为GameScene添加成员变量GameLayer*_gameLayer。4.在GameScene的init里把_gameLayeradd到场景中。2.添加飞机到场景中classPlaneLayer:publicCCLayer{public:PlaneLayer(void);~PlaneLayer(void);staticPlaneLayer*create();//实现create函数virtualboolinit();public:staticPlaneLayer*sharedPlane;//提供sharedPlane全局指针};//PlaneLayer.cppPlaneLayer*PlaneLayer::sharedPlane=NULL;//静态变量要在cpp外初始化PlaneLayer*PlaneLayer::create(){PlaneLayer*pRet=newPlaneLayer();if(pRet&&pRet-init()){pRet-autorelease();sharedPlane=pRet;//获得静态指针sharedPlane的值returnpRet;}else{CC_SAFE_DELETE(pRet);returnNULL;}}3.添加敌机#includeEnemy.hEnemy::Enemy(void){m_sprite=NULL;//m_sprite是CCSprite指针,用来绑定敌机m_life=0;//生命值}Enemy::~Enemy(void){}Enemy*Enemy::create(){Enemy*pRet=newEnemy;pRet-autorelease();returnpRet;}voidEnemy::bindSprite(CCSprite*sprite,intlife)//绑定敌机,并传入生命值{m_sprite=sprite;m_life=life;this-addChild(m_sprite);}CCSprite*Enemy::getSprite(){returnm_sprite;}intEnemy::getLife()//获取生命{returnm_life;}voidEnemy::loseLife()//生命值-1{m_life--;}CCRectEnemy::getBoundingBox()//获取敌机大小{CCRectrect=m_sprite-boundingBox();CCPointpos=this-convertToWorldSpace(rect.origin);CCRectenemyRect(pos.x,pos.y,rect.size.width,rect.size.height);returnenemyRect;}4.添加子弹子弹的初始位置在飞机的机头位置,因为飞机在游戏的过程中会随着玩家的触摸而改变其位置,所以,子弹的初始位置只能以当前飞机位置为基准进行添加。CCPointplanePosition=PlaneLayer::sharedPlane-getChildByTag(AIRPLANE)-getPosition();CCPointbulletPosition=ccp(planePosition.x,planePosition.y+PlaneLayer::sharedPlane-getChildByTag(AIRPLANE)-getContentSize().height/2);bullet-setPosition(bulletPosition);五、实训总结添加飞机和子弹后的效果图实训三一、实训目的与要求完善对游戏引擎的知识的学习,掌握游戏开发中必须要的知识点,熟练使用游戏引擎开发游戏,达到高水平手机游戏的开发效果,在实训中,掌握核心的游戏开发知识。要求学生能够对智能手机的不同触屏事件,进行不同的处理方法,能够在游戏中灵活使用二、实训环境(一)实训设备配置比较高的电脑(S2005)(二)实训软件Vs2012(三)实训场地实训楼3005三.实训准备1.准备好效果图四.实训内容及过程1.触屏方法CCTargetedTouch它是从CCNode继承来的,同时也继承了3个硬件相关接口事件,分别是触摸事件,加速器事件和键盘事件。所以我们可以直接在CCLayer中进行触摸事件的处理。触摸事件中有两个类,CCStandradTouch,CCTargetedTouch。前者为多点触摸,后者为单点触摸,而系统默认注册前者分发事件,我们这里要进行继续重载虚函数registerWithTouchSpatcher,对单点有效。2.触屏回调方法:virtualboolccTouchBegan(CCTouch*pTouch,CCEvent*pEvent);//触摸开始调用virtualvoidccTouchMoved(CCTouch*pTouch,CCEvent*pEvent);//触摸移动调用virtualvoidccTouchEnded(CCTouch*pTouch,CCEvent*pEvent);//触摸结束调用virtualvoidccTouchCancelled(CCTouch*pTouch,CCEvent*pEvent);//一般是系统级调用,比如触摸过程中来电之类的3.实现暂停功能boolControlLayer::init(){boolbRet=false;do{CC_BREAK_IF(!CCLayer::init());CCSizewinSize=CCDirector::sharedDirector()-getWinSize();//加入PauseMenuCCSprite*normalPause=CCSprite::create(CCSpriteFrameCache::sharedSpriteFrameCache()-spriteFrameByName(game_pause_nor.png));CCSprite*pressedPause=CCSprite::create(CCSpriteFrameCache::sharedSpriteFrameCache()-spriteFrameByName(game_pause_pressed.png));pPauseItem=CCMenuItemImage::create();//创建CCMenuItempPauseItem-initWithNormalSpri
本文标题:cocos2d-x游戏设计实训指导书
链接地址:https://www.777doc.com/doc-6402899 .html