作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作一个简单的蛇梯游戏。我有一个像这样绘制的主矩形(所有代码都在 View
的 onDraw
方法中:
//Main BOX rectangle
RectMainBox = new Rect();
RectMainBox.set(getLeft() + 25, getTop() + 25, getRight() - 25, getBottom() - 25);
canvas.drawRect(RectMainBox, PaintMainBox);
因此,这将负责为此 View 的父级的每个角绘制一个内边距为 25 的黑框。
现在我想在主盒子内有方 block (可以有蛇或梯子的游戏单元)。我正在寻找这样的东西(别介意正方形的不平等,它是用油漆绘制的以供引用):
所以我试图在主框中有一个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/
下面是 2 个矩形。给定矩形顶点的坐标 - (x1, y1)...(x8, y8),如何计算重叠区域(下图中白色)的面积? 请注意: 点的坐标可以是任意的 矩形可以重叠也可以不重叠 如果矩形不重叠,或
如何确定用户创建的传单形状(多边形 | 矩形 | 圆形等)内有哪个国家、州、地区、城市或地方? 最佳答案 我认为您正在寻找反向地理编码。 Leaflet不提供地理编码服务,但你可以找到类似的例子her
我是一名优秀的程序员,十分优秀!