如何用cocos2dx开发手机游戏.ppt
如何用cocos2d-x开发手机游戏,如何高效开发跨平台手机网络游戏,选择适当的手机网络游戏引擎什么是cocos2d-x如何用cocos2d-x开发简单游戏如何扩展cocos2d-x开发网游主讲人:杨高山,常见手机游戏引擎,黑莓RIM开源的3D引擎Gameplay(编程语言为C+)Cocos2d-X(编程语言为C+)Cyclone2D(飓风软件):采用Java(Android)和C+(跨平台)两个版本Blender引擎(编程语言为python)Angle(编程语言为JAVA)Unity3D(编程语言为Js),为什么使用cocos2d-x,拥有众多开发者,已经成功发布多款知名游戏跨平台,不折腾开源免费易学易用丰富的周边工具,1.拥有众多开发者,已经成功发布多款知名游戏,Cocos2d-x是一款国际知名的开源2D手机游戏引擎。引擎在全球范围内拥有众多开发者,涵盖国内外各知名游戏开发商。保守估计,基于Cocos2d-x开发的游戏全球范围内已经突破三亿安装量。知名手机游戏捕鱼达人的ios、Android、Bada、MeeGo和BlackBerry版本都是基于Cocos2d-x引擎开发。目前Cocos2d-x引擎已经实现横跨ios、Android、Bada、MeeGo、BlackBerry、Marmalade、Windows、Linux等平台。微软赞助Cocos2d-x社区移植Windows8 Metro版本。包括人人网、空中网、4399、网龙、Haypi、Tinyco、完美世界等国内外领先的游戏开发公司,都在使用Cocos2d-x开发手机游戏,iPhone上知名COCOS2D-x游戏,2.跨平台,不折腾,什么是cocos2d-x,Cocos2-X是什么cocos2d-x前世Cocos2d-X今生Cocos2d family活跃开发者,Cocos2-X是什么,cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C+开发,基于OpenGL ES,支持 WOPhone,iOS 4.1,Android 2.1 and higher,WindowsXP&Windows7,windows phone 8.1 Cocos2d-X是一个开源的移动2D游戏框架,MIT许可证下发布的。,前世,今生,Cocos2d-X(native)Cocos2d-html5Cocos2d-Xna(winphone7)Cocos2d-winphone8,如何用cocos2d-x开发简单游戏,游戏主要元素构成游戏主要操作开发一个简单的游戏如何实现跨平台,游戏主要元素构成,导演(Director)场景(Scenne)层(Layer)精灵(Sprite),Director(导演),Cocos2d游戏引擎的核心。访问和改变场景访问cocs2d的配置细节访问视图(OpenGL、UIView、UIWindow)暂停、恢复和结束游戏在UIKit和OpenGL之间切换坐标,场景(Scene),由所有目前活跃的cocos2d节点所组成的一个层级图。除了场景本身,每一个节点只有一个父节点,但是可以有任意数量的子节点。第一个创建场景的地方是在AppDelegate中aplicationDidFinishLaunching方法结束处。你在那里用Director的runWithScene方法开始运行第一个场景:/用以下代码运行第一个场景CCDirector sharedDirector runWithScene:HelloWorld scene;在其它情况下,用replaceScene方法来替换已有的场景:/用replaceScene来替换所有以后需要变化的场景CCDirector sharedDirector replaceScene:HelloWorld scene;,层(CCLayer),层是一个组织的概念。比如,如果你对一个层使用动作(移动,旋转和缩放),那么所有在这个层上的物体都会受到影响。同时CCLayer类是用来接收触摸输入的。你通过设置isTouchEnabled来让层接收或禁止触摸事件,精灵(CCSprite),CCSprite是最常用到的类。它使用图片把精灵(sprite)显示在屏幕上。常见精灵类有CCLabel(在屏幕上显示文字)、CCMenuItemSprite(菜单项)等,游戏主要操作,切换场景触屏事件处理动作(Actions),切换场景,创建第一个场景runWithScene替换场景replaceScene推进(Pushing)和弹出(Popping)场景,触屏事件处理,ccTouchesBegan:手指首次触摸到屏幕时触发ccTouchesMoved手指在屏幕上移动时触发ccTouchesEnded手指从屏幕上提起时触发ccTouchesCancelled触摸事件被取消时触发,动作(Actions),动作是用于在节点上运行某些“动作”的轻量级类。你可以通过动作让节点移动,旋转,缩放,着色,淡进淡出和干很多其它的事情。重复动作:你可以让动作或者一系列动作重复运行到永远。你可以通过这个特性生成循环动画舒缓动作CCEaseAction类“舒缓动作”允许你改变在一段时间内发生的动作效果。让cocos2d的动作更加有用。动作序列通常情况下,当你给一个节点添加多个动作时,它们会在同一时间运行。,其他,特效(Effects):特效包括波浪(waves)、旋转(twirl)和透镜(lens)等更多 平面地图(Tiled Maps):支持包括矩形和六边形平面地图 转换(Transitions):从一个场景移动到另外一个不同风格的场景菜单(Menus):创建内部菜单 文本渲染(Text Rendering):支持标签和HTML标签动作 基于OpenGL:支持硬件加速,开发一个简单的游戏,创建第一个Scene增加菜单项(close)启动定时器gameLogic,增加精灵,并为精灵制定actionMove动作启动定时器改变游戏精灵状态在动作执行结束处理过程spriteMoveFinished中切换场景在菜单项(close)处理过程中退出游戏,移植android平台,搭建android平台环境创建android项目运行项目的android目录下build_native.sh交叉编译android代码用eclipse导入项目android的工程用eclipse编译并运行android程序,搭建android平台环境,visual studio 2008或以上 cygwin(gcc环境)android ndk(android-ndk-r8b)android IDE 开发环境(eclipse3.6+ADT20.0),创建android项目,修改create-android-project.sh的环境变量#set environment paramtersNDK_ROOT=“/android-dev/android-ndk-r5ANDROID_SDK_ROOT=“/android-dev/android-sdk使用create-android-project.sh创建项目,修改项目mak文件,build_native.sh#set paramsANDROID_NDK_ROOT=/cygdrive/d/anroid/android-ndk-r5bCOCOS2DX_ROOT=/cygdrive/d/Cocos2dxSimpleGameGAME_ROOT=$COCOS2DX_ROOT/Cocos2dxSimpleGameGAME_ANDROID_ROOT=$GAME_ROOT/androidRESOURCE_ROOT=$GAME_ROOT/Resource“修改项目的androidjnihelloworld Android.mk修改LOCAL_SRC_FILES 和LOCAL_C_INCLUDES目录,包含项目需要的代码文件和头文件路径,如何扩展cocos2d-x开发网游,Cocos2d-x能做些什么Cocos2d-x缺了什么如何扩展跨平台模块网易达公司的游戏开发架构概览,Cocos2d-x能做些什么,图像渲染游戏对战游戏交互界面,Cocos2d-x缺了什么,底层通信模块(TCP/UDP、http)协议解析文件跨平台读写消息推送游戏付费第三方平台集成,如何扩展跨平台模块,定义统一接口分平台实现底层组件隔离业务与底层组件的耦合Android下通过jni+java实现平台功能扩展类工厂模式隔离第三方平台的SDK差异,弹弹岛战纪游戏架构,组件层在统一接口层的基础上,从各种类型的游戏中抽像出一组通用的功能模块,进一步封装成独立的业务组件。业务组件具有接口灵巧、使用简单、运行效率高等特点,并能够快速与多种通用游戏引擎整合。游戏对战系统支持Jepf 和LUA等多种脚本,能方便灵活的动态构建和在线升级。,