如何在Java中进行冲突?
问题描述:
在基于迷宫的Java游戏中实现碰撞检测的最简单方法是什么?这可能是障碍,但我认为可能有更好的办法。这是我目前的代码:如何在Java中进行冲突?
package asa.game.main.tile;
import asa.game.main.gfx.Assets;
public class Wall extends Tile{
public Wall(int id) {
super(Assets.wall_one, id);
}
}
答
首先,我会建议创建一个更新线程来调用碰撞检测功能。根据不同的形状和播放器的大小,你可以做
wall.getBounds()。含有(component.getX(),component.getY())
这样,如果你使用的是工作Swing API(JComponents,JPanels等)
另外,如果你使用这个,你将需要做一些涉及组件大小的数学运算,因为组件的x和y值是最高的每个的左角。
如果您没有使用Swing API,因此做了一些自定义绘画,有多种检测游戏对象之间碰撞的方法。您可以为每个对象指定半径或方框(取决于对象的形状)并编写自己的碰撞函数。在我个人看来,我会写as--
这样的功能保存播放 的COORDS如果玩家的COORDS在墙上 返回到上一COORDS 其他 保存播放
新COORDS- 这似乎心惊肉跳不会因为线程正在更新非常频繁 -
如果它使用的是精灵,我会建议一个isOverlapping函数来检查此对象的x1,x2和y1,y2以及isOverlapping(otherObject)中的对象。 – avk 2015-03-13 18:30:29