使用缓冲图像进行碰撞检测

时间:2015-08-03 09:19:57

标签: java collision-detection

我对碰撞检测有点困惑。这是我的第一次尝试,我想弄清楚当涉及到这种类型的逻辑时,最佳实践是什么。我正在制作一个小行星游戏并使用矩形来检测从船上拍摄的激光与从屏幕顶部落下的小行星之间的相交。我的小行星是BufferedImages,激光是绘制的线条(g.drawLine)......

public void collision(Graphics2D g)
    {
        for (int i = 0; i < MAX_LASERS; i++)
        {
            rectLasers = new Rectangle(m_Lasers[i].getX() + 1, m_Lasers[i].getY(), 1, 1);

        }

        for (int i = 0; i < MAX_ASTEROIDS; i++)
        {
            rectAsteroids = new Rectangle(move_Asteroid[i].getX(), move_Asteroid[i].getY(), 50, 50);
            if (rectAsteroids.intersects(rectLasers))
                g.clearRect(move_Asteroid[i].getX(), move_Asteroid[i].getY(), 50, 50);
                m_Asteroid = //trying to put my asteroid img in an array to remove it 
                             // if it comes into contact with a laser
        }
    }

...正如你从上面的代码中看到的那样(请原谅我的代码是不好的,我还在学习如何使用java:D)我的每个小行星和激光周围都有一个矩形循环。我的思维过程是移除,甚至隐藏我的激光和游戏中相交的小行星。我尝试使用'碰撞(Graphics2D g)'希望使用删除方法(.remove)来删除BufferedImage和激光但是没有惹恼......目前已经消失了...有关删除或隐藏的任何帮助或建议我的小行星或激光器将不胜感激!谢谢你们......

TL; DR:当它们通过碰撞检测相互接触时,有没有办法隐藏我的缓冲图像小行星和激光?

0 个答案:

没有答案