cocos2dx ios入口类_cocos2dx[3.2](4) 入口类AppDelegate

这是游戏程序的入口,主要用于游戏程序的逻辑初始化,并创建运行程序的入口界面(即第一个游戏界面场景)。

里面有三个方法:

//

applicationDidFinishLaunching(); //逻辑初始化

applicationDidEnterBackground(); //切换到后台

applicationWillEnterForeground(); //切换到前台

//

源码分析:

//

bool AppDelegate::applicationDidFinishLaunching() {

//初始化一个导演, 只能有一个导演

auto director = Director::getInstance();

//使用OpenGLView

auto glview = director->getOpenGLView();

if(!glview) {

glview = GLView::create("My Game");

glview->setFrameSize(480, 320);//程序窗口标题

director->setOpenGLView(glview);

}

//屏幕适配,设置游戏设计的分辨率

glview->setDesignResolutionSize(480, 320, ResolutionPolicy::SHOW_ALL);

//开启状态显示, 帧数,精灵数等

director->setDisplayStats(true);

//刷新频率,每秒60帧。

director->setAnimationInterval(1.0 / 60);

//创建一个场景HelloWorld,这是游戏程序的第一个界面

auto scene = HelloWorld::createScene();

//运行

director->runWithScene(scene);

return true;

}

// 切换到后台

void AppDelegate::applicationDidEnterBackground() {

//暂停游戏

Director::getInstance()->stopAnimation();

//暂停音乐

SimpleAudioEngine::getInstance()->pauseBackgroundMusic();

}

// 切换到前台

void AppDelegate::applicationWillEnterForeground() {

//继续游戏

Director::getInstance()->startAnimation();

//继续音乐

SimpleAudioEngine::getInstance()->resumeBackgroundMusic();

}

//

讲到这里,大家可能会感到疑惑。为什么会设置了两次分辨率大小呢?

setFrameSize(480, 320);

setDesignResolutionSize(480,320,ResolutionPolicy::SHOW_ALL);

朋友们,这两个的意义是不一样滴。

setDesignResolutionSize 是设置了我们游戏设计时候的分辨率,即想要适配的宽480高320的屏幕比例。也就是说设计者初衷的游戏分辨率屏幕大小。但是对于每个用户来说,他们使用的设备不一定是(480,320)的,比如手机有大有小。而后面的 ResolutionPolicy::SHOW_ALL 参数意思是按照原比例(480/320)进行放缩以适配设备的实际屏幕。

setFrameSize(480, 320)则是设置我们预想设备的屏幕大小,也就是应用程序窗口的大小。

以下贴了几张对比图,加深理解。

1、这是原图片大小,窗口大小为480 * 320。

2、若设置窗口大小为setFrameSize(960, 640),而不设置设计分辨率放缩比例ResolutionPolicy::SHOW_ALL 的情况下,图片不放缩,原图还是480 * 320。

3、设置了 ResolutionPolicy::SHOW_ALL 之后,图片放缩到适配整个屏幕960 * 640 了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值