java - Java 中碰撞处理程序的动态方法

标签 java android collision game-physics

我想为我的游戏设置一套碰撞处理程序,这样我就不必复制大量代码并保持较短的存储空间。在我在类中拥有的方法中,对于两个特定对象来说,它看起来像这样。

   //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/

相关文章:

JavaScript 在凸形上发生墙壁碰撞,卡在 Angular 落

Swift/SpriteKit 许多对象之间的碰撞检测

C++ 冲突问题

java - 如何使用警报管理器设置通知

java - 使用gson获取子对象列表

android - WebView : WebSettings. LayoutAlgorithm.TEXT_AUTOSIZING : Below Android 4. 4?

android - 改造 2 没有给出响应

java - 分配了null的Object数据类型的响应-Java

java - 下面提到的使用 org.springframework.web.client.RestTemplate RestTemplate 的潜在问题是什么?

android - 带有过滤器的 ArrayAdapter 的 ArrayIndexOutOfBoundsException