Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有半径的二维阵列运算算法_Java - Fatal编程技术网

Java 具有半径的二维阵列运算算法

Java 具有半径的二维阵列运算算法,java,Java,试着用我的2d游戏来思考处理这个问题的最佳方法。我希望能够指定坐标对(x,y)和半径值。有了这些信息,我想对gameMap[]的所有元素进行操作 因此,如果半径=0: X 如果半径=1: xxx xxx xxx 如果半径=2: xxxxx xxxxx xxxxx xxxxx xxxxx 这就是我到目前为止得到的,如果半径>1,它就会崩溃 for(int i = 1; i < radius; i++) { // right

试着用我的2d游戏来思考处理这个问题的最佳方法。我希望能够指定坐标对(x,y)和半径值。有了这些信息,我想对gameMap[]的所有元素进行操作

因此,如果半径=0:

X
如果半径=1:

xxx
xxx
xxx
如果半径=2:

xxxxx
xxxxx
xxxxx
xxxxx
xxxxx
这就是我到目前为止得到的,如果半径>1,它就会崩溃

for(int i = 1; i < radius; i++) {
                // right
                setAreaObject(locX+i, locY+i);
                setAreaObject(locX+i, (locY+i)-1);
                setAreaObject(locX+i, locY-i);

                // center
                setAreaObject((locX+i)-1, locY+i);
                setAreaObject((locX+i)-1, (locY+i)-1);
                setAreaObject((locX+i)-1, locY-i);

                // left
                setAreaObject(locX-i, locY+i);
                setAreaObject(locX-i, (locY+i)-1);
                setAreaObject(locX-i, locY-i);
            }
for(int i=1;i
感谢您对(int x=locX-radius;x)的任何想法或想法这应该可以:

for(int x = locX - radius; x <= locX + radius; x++)
{
    for(int y = locY - radius; y <= locY + radius; y++)
    {
            setAreaObject(x, y);
    }
}
for (int x = locX - radius; x <= locX + radius; ++x) {
    for (int y = locY - radius; y <= locY + radius; ++y) {
        setAreaObject(x, y);
    }
}
for(int x=locX-radius;x