gpt4 book ai didi

java - 在一个长方形内画n个正方形

转载 作者:行者123 更新时间:2023-12-01 13:43:18 27 4
gpt4 key购买 nike

我正在尝试制作一个简单的蛇梯游戏。我有一个像这样绘制的主矩形(所有代码都在 ViewonDraw 方法中:

//Main BOX rectangle
RectMainBox = new Rect();
RectMainBox.set(getLeft() + 25, getTop() + 25, getRight() - 25, getBottom() - 25);
canvas.drawRect(RectMainBox, PaintMainBox);

因此,这将负责为此 View 的父级的每个角绘制一个内边距为 25 的黑框。

现在我想在主盒子内有方 block (可以有蛇或梯子的游戏单元)。我正在寻找这样的东西(别介意正方形的不平等,它是用油漆绘制的以供引用):

enter image description here

所以我试图在主框中有一个m×n相等的正方形:

//initiate Cell map
_mapCell = new HashMap<Integer, Cell>();


int cols = 6;
int rows = 8;

//Start and End points of main game box
float left = RectMainBox.left;
float top = RectMainBox.top;
float right = RectMainBox.right / 2f;
float bottom = RectMainBox.bottom / 2f;


float boxWidth = RectMainBox.width() / (float)cols;
float boxHeight = RectMainBox.height() / (float) rows;

PointF start = new PointF(left, top);
PointF end = new PointF(right, bottom);

int id = 0;
for(int r = 1; r <= rows; r++){
for(int c = 1; c <= cols; c++){
RectF rect = new RectF();
rect.set(start.x, start.y, boxWidth - end.x, boxHeight - end.y);
canvas.drawRect(rect, PaintCell);

if(id == 0){
Cell cell = new Cell(id, CellType.START);
cell.setRectangle(rect);
_mapCell.put(id, cell);
} else if(id == rows*cols){
Cell cell = new Cell(id, CellType.END);
cell.setRectangle(rect);
_mapCell.put(id, cell);
}else{
Cell cell = new Cell(id, CellType.NORMAL);
cell.setRectangle(rect);
_mapCell.put(id, cell);
}

id++;
}

start.y += boxHeight;
}

但不幸的是,该代码并没有给我带来任何好处。请给我一些建议,我怎样才能达到上述结果。

最佳答案

也许您可以使用 GridView 作为特殊布局。这也为您提供了向每个单元添加特殊监听器的优势。此外,尺寸调整是由布局管理器进行的,您不必自己进行。

关于java - 在一个长方形内画n个正方形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20523108/

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