所以我正在研究这个2-D物理脉冲引擎,我真的很想知道代码的每个部分发生了什么。在定义多边形的多边形类中,有一部分我根本不理解。
以下是代码的链接: https://github.com/ClickerMonkey/ImpulseEngine/tree/master/src/org/magnos/impulse
单击polygon类并向下滚动到名为public Shape clone()的方法。在这种方法中有“p.u.set(u);”。我不明白这是什么意思,甚至不知道什么意思。如果有人能够解释代码中的这一行是什么,我将不胜感激。
感谢阅读
答案 0 :(得分:2)
首先要了解Polygon
延伸Shape
...
public class Polygon extends Shape
在Shape
中,它将u
定义为public final Mat2 u = new Mat2();
。
因此,在Polygon#clone
中,它首先创建Polygon
的新实例,并使用当前u
实例设置此新实例的u
对象...
Polygon p = new Polygon();
p.u.set( u ); // or p.u.set( this.u ); if it's easier to understand...
现在,在Mat2
中,set(Mat2)
方法只是将参数的属性复制到它自己的值...
public void set( Mat2 m )
{
m00 = m.m00;
m01 = m.m01;
m10 = m.m10;
m11 = m.m11;
}
所以,基本上,这样做是将父Polygon.u
(Mat2
)的属性复制到子/克隆版本......