【发布时间】:2013-07-12 22:34:59
【问题描述】:
我的 DoLogic 方法有这段代码。我正在尝试在镜头和障碍物之间进行交叉,但我真的什么都想不出来..因为两者都是不同的对象..我试图做一些但它根本没有真正检测到什么。
for(int i=0; i<shots.length; i++)
{
if(shots[i] != null)
{
shots[i].moveShot(SHOTSPEED);
if(shots[i].getXPos() > 1280)
{
shots[i] = null;
}
}
}
for(int i=0; i<obstacles.length; i++)
{
if(obstacles[i] == null)
{
obstacles[i] = generateObstacle();
break;
}
if(obstacles[i] != null)
{
obstacles[i].moveObstacle();
if(obstacles[i].getXPos() < 10)
{
obstacles[i] = null;
}
else if(obstacles[i].intersects(Player1.character))
{
obstacles[i] = null;
GameSounds.hit("/resources/8bit_bomb_explosion.wav");
lives--;
}
}
}
你们能给我一个例子或至少一个建议如何在障碍物和射击之间进行交叉吗?
【问题讨论】:
-
这些类是否实现
Shape?如果没有,他们应该。有关 SSCCE,另请参阅 this answer。 -
我应该在 Obstacle 中实现 Rectangle 并在镜头中实现 Oval 吗?因为这就是他们被描绘成的样子
-
我该如何实施?我只是键入实现形状?
-
请不要在运行时加载任何内容,即 GameSounds.hit("/resources/8bit_bomb_explosion.wav");,将此对象加载到局部变量,在应用程序上启动
-
我稍后会这样做,但我不能做交叉路口
标签: java awt intersection java-2d