gpt4 book ai didi

android - 游戏网格不会针对 Android 上的不同手机进行适当缩放

转载 作者:行者123 更新时间:2023-11-29 01:56:06 24 4
gpt4 key购买 nike

我正在为我的游戏创建一个网格,但我希望网格的大小可以根据手机的尺寸而变化。当我运行代码时(注意:我从 ondraw 中删除了很多,只关心线 atm),我的 HTC Desire 和 Wildfire 上的网格大小似乎相同 - 这使得网格在野火上看起来很完美,但是在欲望的网格下方有一个巨大的空间 - 可能因为欲望屏幕更大?我要问的是...

我如何使网格缩放到手机尺寸 - 我希望网格占据手机屏幕的大部分,但要留有余量。谢谢

   protected void onDraw(Canvas canvas) {
super.onDraw(canvas);

padding = 8;
for (int i = 0; i < 9; i++) {
canvas.drawLine(padding + testWidth* i, padding, padding
+ testWidth * i, testWidth* 8+padding, dark);
canvas.drawLine(padding, padding+testWidth* i, testWidth* 8
+ padding, padding+testWidth* i, dark);
}
}

}
public void onSizeChanged(int w, int h, int oldw, int oldh) {
testWidth= w / 9f;
testHeight = h / 9f;
border = w;
getRect(selX, selY, selRect);
super.onSizeChanged(w, h, oldw, oldh);

}

编辑:我现在可以制作一个根据手机尺寸缩放的网格,但它是一个矩形网格。看起来有点傻,我需要一个方形的。如果屏幕更大,也许我应该使填充更大?

最佳答案

这个答案是对 Nicolas Brown 答案的补充,但您可以通过引入更多局部变量来更好地识别您的问题。例如,您的原始循环可以替换为:

padding = 8;
for (int i = 0; i < 9; i++) {
int xposition = padding + testWidth * i;
int yposition = padding + testHeight * i;
// Horizontal line
canvas.drawLine(padding, yposition, padding + testWidth * 8, yposition, dark);
// Vertical line
canvas.drawLine(xposition, padding, xposition, padding + testHeight * 8, dark);
}

此外,正如 Nicolas 所建议的,您没有考虑 8 像素的填充。因此,在您的 onSizeChanged 中,您需要:

testWidth = (w - 16f) / 9f;
testHeight = (h - 16f) / 9f;

关于android - 游戏网格不会针对 Android 上的不同手机进行适当缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15078222/

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