axmol/tests/cpp-empty-test/Classes/AppDelegate.cpp

130 lines
4.3 KiB
C++

#include "AppDelegate.h"
#include <vector>
#include <string>
#include "HelloWorldScene.h"
#include "AppMacros.h"
//Uncomment the following line to use localize manager
//#include "editor-support/cocostudio/LocalizationManager.h"
USING_NS_CC;
using namespace std;
AppDelegate::AppDelegate() {
}
AppDelegate::~AppDelegate()
{
}
void AppDelegate::initGLContextAttrs()
{
GLContextAttrs glContextAttrs = {8, 8, 8, 8, 24, 8, 0};
GLView::setGLContextAttrs(glContextAttrs);
}
bool AppDelegate::applicationDidFinishLaunching()
{
// Initialize director
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
if(!glview) {
glview = GLViewImpl::create("Cpp Empty Test");
director->setOpenGLView(glview);
}
director->setOpenGLView(glview);
// Set the design resolution
glview->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, ResolutionPolicy::NO_BORDER);
Size frameSize = glview->getFrameSize();
vector<string> searchPath;
// In this demo, we select resource according to the frame's height.
// If the resource size is different from design resolution size, you need to set contentScaleFactor.
// We use the ratio of resource's height to the height of design resolution,
// This can make sure that the resource's height could fit for the height of design resolution.
// If the frame's height is larger than the height of medium resource size, select large resource.
if (frameSize.height > mediumResource.size.height)
{
searchPath.push_back(largeResource.directory);
director->setContentScaleFactor(MIN(largeResource.size.height/designResolutionSize.height, largeResource.size.width/designResolutionSize.width));
}
// If the frame's height is larger than the height of small resource size, select medium resource.
else if (frameSize.height > smallResource.size.height)
{
searchPath.push_back(mediumResource.directory);
director->setContentScaleFactor(MIN(mediumResource.size.height/designResolutionSize.height, mediumResource.size.width/designResolutionSize.width));
}
// If the frame's height is smaller than the height of medium resource size, select small resource.
else
{
searchPath.push_back(smallResource.directory);
director->setContentScaleFactor(MIN(smallResource.size.height/designResolutionSize.height, smallResource.size.width/designResolutionSize.width));
}
// Set searching path
FileUtils::getInstance()->setSearchPaths(searchPath);
// Uncomment follow block to use localize manager to set localize strings
// If you want to load json localize data, use follow block
/*
cocostudio::ILocalizationManager * lm = cocostudio::JsonLocalizationManager::getInstance();
lm->initLanguageData("your localize file name.lang.json");
cocostudio::LocalizationHelper::setCurrentManager(lm, false);
*/
// If you want to load binary localize data, use follow block
/*
cocostudio::ILocalizationManager * lm = cocostudio::BinLocalizationManager::getInstance();
lm->initLanguageData("your localize file name.lang.csb");
cocostudio::LocalizationHelper::setCurrentManager(lm, true);
*/
// to enable VR, uncomment the following lines
// auto vrImpl = new VRGenericRenderer;
// glview->setVR(vrImpl);
// Turn on display FPS
director->setDisplayStats(true);
// Set FPS. the default value is 1.0/60 if you don't call this
director->setAnimationInterval(1.0f / 60);
// Create a scene. it's an autorelease object
auto scene = HelloWorld::scene();
// Run
director->runWithScene(scene);
return true;
}
// This function will be called when the app is inactive. Note, when receiving a phone call it is invoked.
void AppDelegate::applicationDidEnterBackground()
{
Director::getInstance()->stopAnimation();
// If you use SimpleAudioEngine, it must be paused
// SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
}
// This function will be called when the app is active again
void AppDelegate::applicationWillEnterForeground() {
Director::getInstance()->startAnimation();
// If you use SimpleAudioEngine, it must resume here
// SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
}