2.2 让场景显示出来
现在直接在Visual Studio中运行刚创建的程序,结果如图2-2所示,可以看到这与上一章默认生成的项目并没有什么区别,这是因为虽然已经新建了一个类MyScene,却并没有将新的内容添加到屏幕中去。那么怎样将MyScene加入到屏幕中去呢,这就要从AppDelegate.cpp文件下手了。
图2-2 直接运行程序的结果
在文件AppDelegate.cpp中可以找到对applicationDidFinishLaunching方法的定义,在其最末尾处可以看到如下代码:
auto scene = HelloWorld::createScene(); director->runWithScene(scene);
将其修改为:
auto scene =MyScene::createScene(); director->runWithScene(scene);
再运行程序,就可以得到如图2-3所示的结果了。这时可以看到屏幕上已经变成空白的了(即使它左下角还有一些奇怪的东西并且其实它是黑色的),那么为什么它变成空白的了呢?这里就要回过头来看范例2-2的第16行注释处了,对比HelloWorldScene.cpp文件的相同位置就不难认识到,屏幕中的各个元素就是在这个地方加入的,由于本例中什么也没有加入,所以它才会黑洞洞的。
图2-3 修改后的程序运行结果
接下来再看图2-2和图2-3左下角那一串奇怪的数字,曾经使用过鲁大师等跑分软件的读者应该对它不陌生,这是用来显示游戏帧数信息的,在游戏完成后最好是能把它去掉。方法就是在AppDelegate.cpp中找到这一句代码:
director->setDisplayStats(true);
将其中的参数改为false就可以了:
director->setDisplayStats(false);
另外,在接下来的代码中,有这样一句:
director->setAnimationInterval(1.0 / 60);
它的作用是设置屏幕的fps,fps又叫做每秒传输帧数,即屏幕每秒刷新的次数,默认为每秒60次。再顺着代码向上看,就可以看到如下代码:
glview = GLViewImpl::create("My Game");
可以通过修改create方法中的参数来改变窗口的标题。需要注意的是,如果在此处直接输入中文会因为编码错误而显示乱码,需要使用iconv库来解决。此外,还可加入如下代码来修改窗口的尺寸和形状:
glview->setFrameSize(640,360);
提示:此次所使用的例子可以在源文件中本章目录下的“CocosProject01”项目中查看。