我想为我的游戏设置一套碰撞处理程序,这样我就不必复制大量代码并保持较短的存储空间。在我在类中拥有的方法中,对于两个特定对象来说,它看起来像这样。
//Inside collision class
public void checkCollision(Block block, Ball ball){
//do stuff with the variables given
}
这意味着我只能检查 block +球的碰撞
我的问题是:是否可以更改给定的对象,以便我可以使用相同的方法并仅解析对象,例如地板物体和球,但有时使用 block 和球。
有时地板不可用,所以如果需要全部三个,我不能只解析 block 和球
这将使我不必输入
public void collision(Block block, Floor floor, Ball ball){
}
不懂请追问, 非常感谢
查尔顿桑塔纳
最佳答案
如果你有这样的方法会怎样:
// ...
public void checkCollision(Collidable a, Collidable b) {
a.collideWith(b);
}
和界面
public interface Collidable {
SomeReturnType collideWith(Collidable coll);
}
在这种情况下,您可以将任何 Collidable
与在 collideWith
方法中处理碰撞的另一个碰撞。
这只是一个想法,尚不清楚您想要如何实现这种效果。因此,如果您扩展您的答案,我可以进一步帮助您。
关于java - Java 中碰撞处理程序的动态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16562946/