用cocos2d
在上一篇《用cocos2d-x做一款属于自己的iOS游戏-01-新建项目》(链接:https://mbd.baidu.com/newspage/data/landingshare?pageType=1&isBdboxFrom=1&context=%7B%22nid%22%3A%22news_9508766824069825720%22%2C%22sourceFrom%22%3A%22bjh%22%7D)已经新建了HelloWorld项目,这一篇了解iOS coco2dx项目结构。
先看一下文件目录:
文件结构
做过OC项目的人,对这个文件结构应该很熟悉,cocos2d_libs.xcodeproj是coco2dx的支持库,Frameworks里面也是要用到的库,Resources文件夹是一些字体和图片资源,Classes文件夹是我们重点要看的代码,ios文件夹是iOS项目该有的默认的一些文件,Products是生成文件。
从ios/main.m(如上图)可以知道,程序的入口是AppController.h而不是AppDelegate.h。
大体执行脉络
执行函数过程
首先,APP运行时,先执行AppController,初始化cocos2dx的属性(AppDelegate的方法initGLContextAttrs()),新建UIWindow,将RootViewController作为根文件(RootViewController没有做什么事情,就是横竖屏切换时设置coco2dx游戏场景即OpenGLView的绘制尺寸与APP一致),然后启动游戏app->run(),在 run()里面,会调用方法applicationDidFinishLaunching(),而这个方法也重写在AppDelegate文件,功能是加载HelloWorldScene文件绘制的场景(绘制一个文字"HelloWorld"和中间一个logo图片),然后startMainLoop,进入主循环。
游戏中的每一个页面,就是一个场景(Scene),我们重点是如何写好HelloWorldScene.cpp,以及增加不同的XXXScene.cpp。