Java 我如何使另一个物体接触后消失?
我正在用Java开发一个小游戏,你可以像一个小盒子一样玩,目标是触摸其他盒子。你用按钮四处移动,当你触摸另一个盒子时,我希望这个盒子不是玩家想要的 我不知道如何检测这些盒子何时相互接触 我的想法是:Java 我如何使另一个物体接触后消失?,java,collision-detection,game-physics,Java,Collision Detection,Game Physics,我正在用Java开发一个小游戏,你可以像一个小盒子一样玩,目标是触摸其他盒子。你用按钮四处移动,当你触摸另一个盒子时,我希望这个盒子不是玩家想要的 我不知道如何检测这些盒子何时相互接触 我的想法是: if (mainBox is touching otherBox){ otherBox.disappears(); } 任何帮助都将不胜感激。典型的冲突逻辑是通过比较点来完成的 由于正方形的典型绘制点位于左上角,因此基本逻辑如下: p = playerBox t = targetBox
if (mainBox is touching otherBox){
otherBox.disappears();
}
任何帮助都将不胜感激。典型的冲突逻辑是通过比较点来完成的 由于正方形的典型绘制点位于左上角,因此基本逻辑如下:
p = playerBox
t = targetBox
if((t.x>=p.x && t.x<=p.x+p.w) || (t.x+t.w>=p.x && t.x+t.w<=p.x+p.w)){
if((t.y>=p.y && t.y<=p.y+p.h) || (t.y+t.h>=p.y && t.y+t.h<=p.y+p.h){
System.out.println("Player p collided with target t!");
}
}
p=playerBox
t=目标箱
如果((t.x>=p.x&&t.x=p.x&&t.x+t.w=p.y&&t.y=p.y&&t.y+t.h我的第一个想法是维护一个无用户框的散列图,其中框的键=位置和值=框对象。每当玩家框移动时,你都想触发一个触发冲突检查的事件。
当事件被触发时,你只需说
public void checkForCollision(Position currentPosition){
// do not go further if no collision
if (!boxes.containsKey(currentPosition)){ return }
//this part will only execute if there is a collission
boxes.get(currentPosition).makeItDissapear();
}
先决条件:
-描述长方体属性的对象
-研究google的EventBus以轻松管理环境所以你想要一种检测冲突的方法,不是吗?如果你在GUI模型中使用intersects方法来对框进行建模,你可以使用intersects方法来检测冲突。没错!以前没有这样做过,所以有点不确定如何做。如何将我的矩形声明为一个变量?现在我正在使用它键入:g.fillRect(x,y,20,20);您可以通过声明将矩形变成一个对象。rectangle rect=新矩形(x,y,w,h);然后您可以创建一个“draw”方法,该方法调用g.fillRect(rect.x,rect.y,rect.w,rect,h)。您需要一个形状数组列表,在其中添加它们或一个的哈希映射,以便通过id或其他标识符跟踪当前形状