我正在尝试自定义一个碰撞器类,您可以在其中将两个对象传递给一个方法,如果两个对象中的任何一个发生碰撞,则执行某种操作。
比如我在做一个射击游戏,我想做的是说:
- If Any
Ship
与任何子弹碰撞Bullet
- 摧毁受影响的
Ship
和受影响的Bullet
- 摧毁受影响的
- 别的
- 没做什么
我想做的就是写一次,而不是为每一颗子弹和/或每艘船写一次。所以,我正在考虑做这样的事情:
ColliderEvent collide = new ColliderEvent();
collide.hit(Ship, Bullet, new Runnable(){
@Override
public void run(){
// Destroy bullet and ship here
}
});
然后在我的主游戏线程中,我会做一些事情来测试在某种方法中提供的两个对象是否hit
在某个点发生碰撞,如果是,则执行传入的第三个参数hit
那么,有没有办法在不将 Ship/Bullet 实例传递给hit
方法的情况下做到这一点?