这是我第一次尝试撞击算法。我尝试检查一个对象的矩形大小和边界是否相交。现在,在这个应用程序中,我制作了可以运行的子弹,并使用无延迟循环检查碰撞。问题是,当我产生约30-40颗子弹时,帧率会变得非常低。如果有人能教我编写健壮的碰撞检测方法,我会感激不尽。
顺便说一下,我使用了Java中的Vector集合(可能迭代速度不够快?还是我的代码太混乱了?)。
顺便说一下,我使用了Java中的Vector集合(可能迭代速度不够快?还是我的代码太混乱了?)。
public void checkBoundary(int width, int height) //width and height of the applet
{
for(int i = 0; i < vec.size(); i++)
{
if(vec.get(i).x + vec.get(i).width <= 0 ||
vec.get(i).y + vec.get(i).height <= 0 ||
vec.get(i).x >= width ||
vec.get(i).y >= height)
vec.remove(i);
}
}
这个向量存储了一个子弹对象,其左下角坐标为(x,y),宽度和高度分别为width和height。