为什么程序不能识别这两个对象是否相交?

时间:2015-10-24 16:16:02

标签: java user-interface random jframe keylistener

我试图制作游戏蛇时遇到了一些问题。我的第一个问题是我无法将食物广场和蛇形广场完美地重叠。换句话说,食物总是有点偏离。

我的第二个问题是该程序有时不会认识到蛇与食物相交。它会认为当蛇稍微高一点时,它就会相交。

我的第三个也是最后一个问题是,每当程序确实看到两个对象相交时,它就不会产生像传统游戏中那样的第二条蛇。

这是它应该产生一条新蛇的部分:

   public void paintSnake(Graphics g){
        g.setColor(Color.green);
        g.fillRect(food.x, food.y, food.width, food.height);

        for(int i = count; i <= count; i++){
            g.setColor(Color.red);
            g.fillRect(snakes.x - 25, snakes.y - snakes.width - (i*5), snakes.width, snakes.height);
        }
    }

这是程序检查两个对象是否相交的地方

 if (snakes.intersects(food) && snakes.y  == food.y && snakes.x == food.x){
        count ++;
        System.out.println(count);
        food.x = randx;
        food.y = randy - 10;
    }

下一部分来自代码中的三个不同位置。第一个是食物块的坐标:

    snakes = new Rectangle(WIDTH / 2, HEIGHT / 2, 20, 20);
    food = new Rectangle( snakes.x, snakes.y, snakes.width, snakes.height);

蛇第一次与食物块相交后,会产生一个随机数,在那里使用:

    randx = (int) (Math.floor(Math.random()*80)*10);
    randy = (int) (Math.floor(Math.random()*80)*10);

在这两行中将数字分配给食物对象:

    food.x = randx;
    food.y = randy;

0 个答案:

没有答案