本文整理汇总了C++中GLView::setDesignResolutionSize方法的典型用法代码示例。如果您正苦于以下问题:C++ GLView::setDesignResolutionSize方法的具体用法?C++ GLView::setDesignResolutionSize怎么用?C++ GLView::setDesignResolutionSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GLView
的用法示例。
在下文中一共展示了GLView::setDesignResolutionSize方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DoInitFixedScreenSize
void ScreenSizeManager::DoInitFixedScreenSize(float myScreenWidth,
float myScreenHeight)
{
_isInit = true;
// cocos2d-x v3.0.0 이상만 지원.
CCAssert(0x00030000 <= COCOS2D_VERSION, "ScreenSizeManager need to cocos2d-x 3.0.0 or higher!");
Director* kDirector = CCDirector::getInstance();
CCAssert(kDirector->getOpenGLView(), "ScreenSizeManager need to kDirector->getOpenGLView() is not NULL");
Size kWinSize = kDirector->getWinSize();
_screenSize.width = kWinSize.width;
_screenSize.height = kWinSize.height;
_imageResolutionSize.width = myScreenWidth;
_imageResolutionSize.height = myScreenHeight;
log("DoInitFixedScreenSizeManager %f %f", _imageResolutionSize.width, _imageResolutionSize.height);
// Cocos2d상의 포인트영역이 _imageResolutionSize.width, _imageResolutionSize.height 으로 설정된다.
// CCDirector::sharedDirector()->getWinSize()의 width, height 가 _imageResolutionSize.width, _imageResolutionSize.height 로 된다.
ResolutionPolicy kResolutionPolicy = ResolutionPolicy::NO_BORDER;
GLView* kGLView = kDirector->getOpenGLView();
kGLView->setDesignResolutionSize(_imageResolutionSize.width, _imageResolutionSize.height, kResolutionPolicy);
}
示例2: DoInitFlexibleScreenSize
void ScreenSizeManager::DoInitFlexibleScreenSize(float myImageResolutionWidth,
float myImageResolutionHeight)
{
_isInit = true;
// cocos2d-x v3.0.0 이상만 지원.
CCAssert(0x00030000 <= COCOS2D_VERSION, "ScreenSizeManager need to cocos2d-x 3.0.0 or higher!");
Director* kDirector = Director::getInstance();
CCAssert(kDirector->getOpenGLView(), "ScreenSizeManager need to kDirector->getOpenGLView() is not NULL");
Size kWinSize = kDirector->getWinSize();
_screenSize.width = kWinSize.width;
_screenSize.height = kWinSize.height;
_imageResolutionSize.width = myImageResolutionWidth;
_imageResolutionSize.height = myImageResolutionHeight;
float kDefaultDesignResRatio = _imageResolutionSize.width / _imageResolutionSize.height;
float kScreenRatio = _screenSize.width / _screenSize.height;
if ( kDefaultDesignResRatio <= kScreenRatio)
{
float kHeightRatio = _screenSize.height / _imageResolutionSize.height;
// 폭이 넓은 경우
_imageResolutionSize.width = (int)(_screenSize.width / kHeightRatio);
_isScaleHeight = true;
}
else
{
// 높이가 긴 경우
float kWidthRatio = _screenSize.width / _imageResolutionSize.width;
// 폭이 넓은 경우
_imageResolutionSize.height = (int)(_screenSize.height / kWidthRatio);
_isScaleHeight = false;
}
log("DoInitResourceSizeScreen %f %f", _imageResolutionSize.width, _imageResolutionSize.height);
// Cocos2d상의 포인트영역이 _imageResolutionSize.width, _imageResolutionSize.height 으로 설정된다.
// CCDirector::sharedDirector()->getWinSize()의 width, height 가 _imageResolutionSize.width, _imageResolutionSize.height 로 된다.
ResolutionPolicy kResolutionPolicy = ResolutionPolicy::NO_BORDER;
GLView* kGLView = kDirector->getOpenGLView();
kGLView->setDesignResolutionSize(_imageResolutionSize.width, _imageResolutionSize.height, kResolutionPolicy);
}
示例3: init
bool WelcomeMenu::init()
{
if(!Layer::init())
{
return false;
}
GLView* glView = Director::getInstance()->getOpenGLView();
enum ResolutionPolicy policy = ResolutionPolicy::SHOW_ALL;
glView->setDesignResolutionSize(960, 640, policy);
Size visibleSize = Director::getInstance()->getVisibleSize();
Point origin = Director::getInstance()->getVisibleOrigin();
auto menu = this->_createMenu();
menu->setPosition(480, 320);
this->addChild(menu);
return true;
}
示例4: init
bool ScreenTest::init()
{
// 物理分辨率
GLView *glview = Director::getInstance()->getOpenGLView();
Size frameSize = glview->getFrameSize();
CCLOG("FRAME SIZE: %dx%d", (int)frameSize.width, (int)frameSize.height);
// Result:
// iPhone(3.5-inch) 960x640 1.5
// iPhone(4-inch) 1136x640 1.775
// iPad 1024x768 1.333
// iPad Retina 2048x1536 1.333
// 设置逻辑上的游戏屏幕大小
// ResolutionPolicy::EXACT_FIT为了保持了全屏显示,对画面进行了拉伸(不推荐!)
// glview->setDesignResolutionSize(400, 480, ResolutionPolicy::EXACT_FIT);
// ResolutionPolicy::SHOW_ALL为了保持设计画面比例对四周进行留黑边处理,使得不同比例下画面不能全屏。
// glview->setDesignResolutionSize(400, 480, ResolutionPolicy::SHOW_ALL);
// ResolutionPolicy::NO_BORDER为了填补留下的黑边,将画面稍微放大,以至于能够正好补齐黑边
glview->setDesignResolutionSize(m_designWidth, m_designHeight, ResolutionPolicy::NO_BORDER);
// 其他参数,参考ResolutionPolicy的注释
Size winSize = Director::getInstance()->getWinSize();
CCLOG("WIN SIZE: %dx%d", (int)winSize.width, (int)winSize.height);
// Result: winSize的大小为glview->setDesignResolutionSize()设置的值
// 默认为FrameSize
auto dispatcher = Director::getInstance()->getEventDispatcher();
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
// Add Touch Listener
auto touchListener = EventListenerTouchAllAtOnce::create();
touchListener->onTouchesBegan = CC_CALLBACK_2(ScreenTest::onTouchesBegan, this);
touchListener->onTouchesMoved = CC_CALLBACK_2(ScreenTest::onTouchesMoved, this);
touchListener->onTouchesEnded = CC_CALLBACK_2(ScreenTest::onTouchesEnded, this);
touchListener->onTouchesCancelled = CC_CALLBACK_2(ScreenTest::onTouchesCancelled, this);
dispatcher->addEventListenerWithSceneGraphPriority(touchListener, this);
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_MAC || CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
// Add Mouse Listener
auto mouseListener = EventListenerMouse::create();
// mouseListener->onMouseMove = CC_CALLBACK_1(ScreenTest::onMouseMove, this);
// mouseListener->onMouseUp = CC_CALLBACK_1(ScreenTest::onMouseUp, this);
// mouseListener->onMouseDown = CC_CALLBACK_1(ScreenTest::onMouseDown, this);
mouseListener->onMouseScroll = CC_CALLBACK_1(ScreenTest::onMouseScroll, this);
dispatcher->addEventListenerWithSceneGraphPriority(mouseListener, this);
#endif
m_editWidth = UIUtil::createEditBox(this, 100, 160, "Design Width");
m_editHeight = UIUtil::createEditBox(this, 100, 100, "Design Height");
m_editHeight->setInputMode(EditBox::InputMode::NUMERIC);
m_editWidth->setInputMode(EditBox::InputMode::NUMERIC);
char width[32];
sprintf(width, "%d", (int)winSize.width);
m_editWidth->setText(width);
char height[32];
sprintf(height, "%d", (int)winSize.height);
m_editHeight->setText(height);
return true;
}
示例5: applicationDidFinishLaunching
bool AppDelegate::applicationDidFinishLaunching() {
// initialize director
Director* pDirector = gDirector;
GLView* pGLView = pDirector->getOpenGLView();
if( NULL == pGLView )
{
pGLView = GLView::create("game(v1.0.0.0)---test for inner");
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
pGLView->setFrameSize(1334, 750);
#endif
pDirector->setOpenGLView(pGLView);
}
// turn on display FPS
pDirector->setDisplayStats(true);
// set FPS. the default value is 1.0/60 if you don't call this
pDirector->setAnimationInterval(1.0 / 60);
// resolution information
Size size;
size= pDirector->getWinSize();
log("***IDONG: Director getWinSize:w=%f,h=%f",size.width,size.height);
size = pDirector->getWinSizeInPixels();
log("***IDONG: Director getWinSizeInPixels:w=%f,h=%f",size.width,size.height);
size = pDirector->getVisibleSize();
log("***IDONG: Director getVisibleSize:w=%f,h=%f",size.width,size.height);
Point point = pDirector->getVisibleOrigin();
log("***IDONG: Director getVisibleOrigin:x=%f,y=%f",point.x,point.y);
log("***IDONG: Director BS: getContentScaleFactor: scaleFactor=%f",pDirector->getContentScaleFactor());
auto framsize = pGLView->getFrameSize();
auto dwinsize = pDirector->getWinSize();
auto designsize = Size(SCREEN_WIDTH, SCREEN_HEIGHT);
auto widthRate = framsize.width/designsize.width;
auto heightRate = framsize.height/designsize.height;
auto resolutionRate = 1.f;
if(widthRate > heightRate)
{
pGLView->setDesignResolutionSize(designsize.width,
designsize.height*heightRate/widthRate, ResolutionPolicy::NO_BORDER);
resolutionRate = heightRate/widthRate;
}
else
{
pGLView->setDesignResolutionSize(designsize.width*widthRate/heightRate, designsize.height,
ResolutionPolicy::NO_BORDER);
resolutionRate = widthRate/heightRate;
}
//pGLView->setDesignResolutionSize(SCREEN_WIDTH, SCREEN_HEIGHT, ResolutionPolicy::FIXED_HEIGHT);
log("***IDONG:/n");
log("***IDONG: Director AS: getContentScaleFactor: scaleFactor=%f",pDirector->getContentScaleFactor());
size= pDirector->getWinSize();
log("***IDONG: Director getWinSize:w=%f,h=%f",size.width,size.height);
size = pDirector->getWinSizeInPixels();
log("***IDONG: Director getWinSizeInPixels:w=%f,h=%f",size.width,size.height);
size = pDirector->getVisibleSize();
log("***IDONG: Director getVisibleSize:w=%f,h=%f",size.width,size.height);
point = pDirector->getVisibleOrigin();
log("***IDONG: Director getVisibleOrigin:x=%f,y=%f",point.x,point.y);
// ‘ˆº”À—À˜¬∑æ∂
gFileUtils->addSearchPath("assets");
// …Ë÷√◊ ‘¥ƒø¬�?
// ≥ı ºªØ◊ ‘¥ƒø¬�?dumpŒƒº˛…˙≥…ƒø¬�?
string logfile = "";
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
gGameManager->SetResourceRoot("/mnt/sdcard/com.zm.mszb/");
gGameManager->CreateDirectory(gGameManager->GetResourceRoot());
gGameManager->CreateDirectory(gGameManager->GetLogPath());
logfile = gGameManager->GetLogPath()+"/log.txt";
gLog->Open(logfile.c_str());
#endif
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
gGameManager->SetResourceRoot("");
gGameManager->CreateDirectory(gGameManager->GetResourceRoot());
gGameManager->CreateDirectory(gGameManager->GetLogPath());
logfile = gGameManager->GetLogPath()+"/log.txt";
gLog->Open(logfile.c_str());
#endif
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
gGameManager->SetResourceRoot(gFileUtils->getWritablePath());
gGameManager->CreateDirectory(gGameManager->GetResourceRoot());
gGameManager->CreateDirectory(gGameManager->GetLogPath());
logfile = gGameManager->GetLogPath()+"/log.txt";
//.........这里部分代码省略.........