gpt4 book ai didi

c++ - 如何将按钮缩放到其原始纵横比?

转载 作者:太空宇宙 更新时间:2023-11-04 12:35:56 24 4
gpt4 key购买 nike

我的应用程序将 resolutionPolicy 设置为 EXACT_FIT,因此它覆盖了屏幕的整个区域,从而产生拉伸(stretch)的 UI。有一些按钮,原来长宽比是圆形的,现在变成了椭圆形。因此,我无法计算出使它们再次成为圆形所需的比例因子。

要使它们在每个分辨率下都呈圆形,我需要根据屏幕的宽度和高度使用适当的比例因子,但我无法准确计算出来。

std::string buttonNormalIcon = "menu/back.png";
std::string buttonPressedIcon = buttonNormalIcon;
cocos2d::ui::Button* button = ui::Button::create();
std::string buttonDisabledIcon = buttonNormalIcon;
if(buttonDisabledIcon.find(".png") != std::string::npos) {
buttonDisabledIcon = buttonDisabledIcon.insert(buttonDisabledIcon.find(".png"), "_disabled");
}

// This is the part which needs to be figured out.
float scalingFactor = 1.0;
backButton->setScale(scalingFactor);

我也想根据 X 轴和 Y 轴进行缩放。

最终应用中的按钮应该是圆形的。

最佳答案

由于您的用例要求您根据屏幕的宽度和高度缩放按钮,您可以编写类似于以下内容的代码:

const Size& screenSize = Director::getInstance()->getOpenGLView()->getFrameSize();

//define a CONST_1 float variable and an appropriate scale CONST_1_SCALE
if ((screenSize.width / screenSize.height) > CONST_1) {
backButton->setScale(CONST_1_SCALE);
} else if ((screenSize.width / screenSize.height) > CONST_2) {
backButton->setScale(CONST_2_SCALE);
} else {
//write code to scale the button based on other ratios
...........
}

基于以上逻辑,您可以根据需要动态缩放您的按钮。

关于c++ - 如何将按钮缩放到其原始纵横比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56372609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com