我正在开发一个游戏,这是基于光学项目,如镜子和镜头。我有一束光。如果光束将击中一个光学项目,它应该根据物理规则进行反射。我知道光束的方向。因此,我需要检测与光学项目的碰撞,所以我不能计算反射。在java中实现光学项目以检测与光束和光学项目的碰撞的最佳方式是什么。边界框模型不适合我的情况。我在考虑使用多边形。检测碰撞点(x,y)很容易,但光学项目可以旋转,因此计算角度和反射似乎很困难。
你有什么建议吗?
发布于 2012-04-03 21:45:47
镜像和光束的Calculate the angle between the two lines。然后你只需要在镜子的另一半上以相同的角度绘制反射光束即可。
发布于 2012-04-03 21:46:13
通常,在开发UI时,您有一个数据模型和一个呈现数据模型的视图。
你的问题有点不同。您将拥有一个表示镜子的类和另一个表示镜头的类。类的实例将保存状态信息,如对象的位置和对象面对的方向。类方法将负责实现反射镜和透镜的物理规则。
视图绘制逻辑需要做的不仅仅是呈现数据模型。您将不得不遍历对象的所有实例以检测碰撞,然后将物理规则应用于光束以查看下一步的方向。
虽然光束源、透镜和镜子都是数据模型中的对象,但每次要在视图中绘制光束时,都必须计算光束本身。
https://stackoverflow.com/questions/9994412
复制相似问题