在矩形内绘制n个正方形

赛义德·亚兹达尼(Saeid Yazdani)

我正在尝试制作一个简单的蛇梯游戏。我有一个像这样绘制的主矩形(所有代码都在以下onDraw方法的内部View

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

这样就可以从该视图的父对象的每个角绘制一个填充为25的黑盒。

现在,我要在主框内有一个正方形(游戏单元可以有蛇或梯子)。我正在寻找这样的东西(不要介意正方形的不平等,它的涂漆仅供参考):

在此处输入图片说明

所以我试图m by 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;
}

但是不幸的是,这些代码并没有带我到任何地方。请给我一些建议,我如何才能达到上述效果。

多样性

也许您可以将网格视图用作特殊布局。这也为您提供了向每个单元添加特殊侦听器的优势。另外,尺寸对齐由布局管理器进行,您不必自己进行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Matlab中绘制正方形表面

来自分类Dev

在Windows窗体上绘制正方形

来自分类Dev

绘制大量正方形的最快方法?

来自分类Dev

算法创建正方形内n个角的多边形(HTML5-Canvas)?

来自分类Dev

从Java用户输入中绘制空心星号正方形/矩形

来自分类Dev

在Matlab中将图像分为两个非矩形非正方形子图像

来自分类Dev

在圆内绘制正方形布局

来自分类Dev

绘制大量不同颜色的正方形

来自分类Dev

与画布矩形内的彩色正方形不同颜色的文本

来自分类Dev

在正方形内绘制geom_tile边界以防止重叠

来自分类Dev

openGL(c)绘制正方形

来自分类Dev

去图像绘制正方形

来自分类Dev

CSS-如何在2个正方形的中间放置一个矩形

来自分类Dev

在gnuplot中从x到y坐标绘制一个正方形

来自分类Dev

Matplotlib-以正方形绘制数据

来自分类Dev

在ImageView Android上绘制时,绘制的矩形不是正方形

来自分类Dev

如何使用WebGL绘制正方形

来自分类Dev

在Opengl中从不同颜色的正方形绘制矩形

来自分类Dev

着色n个正方形的方法数量

来自分类Dev

在OpenGL ES中绘制正方形

来自分类Dev

从Java用户输入中绘制空心星号正方形/矩形

来自分类Dev

在PHP表单中绘制正方形

来自分类Dev

我必须在C ++中在正方形内绘制正方形

来自分类Dev

与画布矩形内的彩色正方形的颜色不同的文本

来自分类Dev

openGL(c)绘制正方形

来自分类Dev

在网页中将正方形图像划分为N个相等的矩形

来自分类Dev

Java 在同一个 JFrame 中绘制多个正方形

来自分类Dev

C#,Windows 应用程序,绘制一个边为 N 的正方形

来自分类Dev

在JS中以最小的时间复杂度绘制一个带边框的正方形

Related 相关文章

热门标签

归档