1、AppDelegate.cpp中主函数解析
// initialize director
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
if(!glview) {
glview = GLViewImpl::create("My Game");
director->setOpenGLView(glview);
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
if(!glview) {
glview = GLViewImpl::create("My Game");
director->setOpenGLView(glview);
}
// turn on display FPS
director->setDisplayStats(true);
第一个:openGL发送给显卡的顶点数(越小越好)
第二个:被调用的次数(越小越好)
第三个:帧率:每秒钟渲染的次数(如播放动画(每秒播放多少张图片形成动画)前面帧率,后面时间间隔)。
// set FPS. the default value is 1.0/60 if you don't call this
director->setAnimationInterval(1.0 / 60);
尽计算机最大可能设置帧率
// create a scene. it's an autorelease object
// C++ 11新特性 创建一个场景
auto scene = HelloWorld::createScene();
// run 导演运行某一个场景
director->
runWithScene(scene);
二:坐标系
标准坐标系:
原点为屏幕左上角,x向右,y向下;
OpenGL坐标系:原点为屏幕左下角,X轴向右,Y轴向上。iOS的屏幕触摸事件Touch传入的位置信息就是使用的该坐标系。
节点坐标系:和节点相关联的坐标系。
锚点:将一个节点添加到父节点里,需要设置其在父节点上的位置,本质上是设置节点的锚点在父节点坐标系上的位置。Layer的默认值为(0,0),其他Node的默认值是(0.5,0.5)。
坐标系转换:(不考虑锚点,都以当前节点父类的左下角的坐标为标准)
//
基于父节点的本地坐标系转换成世界坐标系
1、
auto si=this->convertToWorldSpace(Hero->getPosition());
//
世界坐标系转换成基于父节点的本地坐标系
2、
auto sis=this->convertToNodeSpace(Vec2(300, 300));
三、
Director是单例模式,调用Director的标准方式:Director::getInstance ( ) ->函数名。