Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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 什么?或者像增加一样?共享堆栈跟踪所有添加的矩形都具有相同的位置?或者类似于增加?也许可以提供一种方法来确定在尝试增加主体时要使用的索引(搜索数组中的第一个空值,并使用找到的索引-1来查找蛇的尾巴)。我可以看到的另一个错误是,当他在tempBody中添加一_Java_Arraylist - Fatal编程技术网

Java 什么?或者像增加一样?共享堆栈跟踪所有添加的矩形都具有相同的位置?或者类似于增加?也许可以提供一种方法来确定在尝试增加主体时要使用的索引(搜索数组中的第一个空值,并使用找到的索引-1来查找蛇的尾巴)。我可以看到的另一个错误是,当他在tempBody中添加一

Java 什么?或者像增加一样?共享堆栈跟踪所有添加的矩形都具有相同的位置?或者类似于增加?也许可以提供一种方法来确定在尝试增加主体时要使用的索引(搜索数组中的第一个空值,并使用找到的索引-1来查找蛇的尾巴)。我可以看到的另一个错误是,当他在tempBody中添加一,java,arraylist,Java,Arraylist,什么?或者像增加一样?共享堆栈跟踪所有添加的矩形都具有相同的位置?或者类似于增加?也许可以提供一种方法来确定在尝试增加主体时要使用的索引(搜索数组中的第一个空值,并使用找到的索引-1来查找蛇的尾巴)。我可以看到的另一个错误是,当他在tempBody中添加一个新矩形时,他从哪里获得宽度和高度?他没有将它作为参数传递给grow()函数,grow()函数中没有定义它,它们也不是全局变量。@HarilSatra look构造函数,有来自超类的GameObject我建议去掉数组,改用列表。此外,只需从一个


什么?或者像增加一样?共享堆栈跟踪所有添加的矩形都具有相同的位置?或者类似于增加?也许可以提供一种方法来确定在尝试增加主体时要使用的索引(搜索数组中的第一个空值,并使用找到的索引-1来查找蛇的尾巴)。我可以看到的另一个错误是,当他在tempBody中添加一个新矩形时,他从哪里获得宽度和高度?他没有将它作为参数传递给grow()函数,grow()函数中没有定义它,它们也不是全局变量。@HarilSatra look构造函数,有来自超类的
GameObject
我建议去掉数组,改用列表。此外,只需从一个元素开始,而不是从三个元素开始,其中两个元素为null。也许可以提供一种方法来确定在尝试生长身体时要使用的索引(搜索数组中的第一个null,并使用找到的索引-1来查找蛇的尾巴)我可以看到的另一个错误是,当他在tempBody中添加一个新的矩形时,他的宽度和高度在哪里?他没有将它作为参数传递给grow()函数,grow()函数中没有定义它,它们也不是全局变量。@HarilSatra look构造函数,有来自超类的
GameObject
我建议去掉数组,改用列表。此外,从一个元素开始,而不是从三个元素开始,其中两个元素为空。使用列表的目标是不确定地增加大小,增长2倍后,您将始终使用else,但您仍然可以增长使用列表的目标是不确定地增加大小,增长2倍后,您将始终使用else,但您仍然可以增长
public class Snake extends GameObject
{
    private Rectangle[] snake;
    private int speed;

    public Snake(int locX, int locY, int width, int height, int speed, ID id) 
    {
        super(locX, locY, width, height, id);
        snake = new Rectangle[3];
        snake[0] = new Rectangle(locX, locY, width, height);
        this.speed = speed;
        grow();
    }

    public void render(Graphics g) 
    {
        g.setColor(Color.GREEN);
        drawSnake(g);               
    }   

    public Rectangle getBounds()
    {
        return new Rectangle(locX, locY, width, height);
    }   

    private void drawSnake(Graphics g)
    {       
        for(int i = 0; i < snake.length - 1; i++)
        {
            g.fillRect(locX, locY, width, height);
        }
    }

    private void grow()
    {
        ArrayList<Rectangle> tempBody = new ArrayList<Rectangle>(Arrays.asList(snake));

        tempBody.add(new Rectangle(snake[snake.length - 1].x, snake[snake.length - 1].y, width, height));   

        snake = tempBody.toArray(snake);
    }   
}
private void grow(){
    ArrayList<Rectangle> tempBody = new ArrayList<Rectangle>(Arrays.asList(snake));

    tempBody.add(new Rectangle(snake[size].x, 
                               snake[size].y, width, height));   

    snake = tempBody.toArray(snake);
    size++;
}  
public void grow()
{
    ArrayList<Rectangle> tempBody = new ArrayList<Rectangle>(Arrays.asList(snake));
    if(tempBody.size() < snake.length())
    {
        tempBody.add(new Rectangle(snake[tempBody.size() - 1].x, snake[tempBody.size() - 1].y, width, height));   
        snake = tempBody.toArray(snake);
    }
    else
        System.out.println("Snake at full size: " + snake.length());
}