Box2DFlashAS3 물리 엔진을 다른 언어 (Xojo)로 이식하려고합니다. 나는 Actionscript에 능통하지 않다 (그러나 Box2D가 원래 작성된 C++보다 더 많이 그렇다).이 함수는 Actionscript에서 무시되는 값을 어떻게 반환합니까?
필자가 이해 하듯이 매개 변수는 Actionscript의 함수에 전달되므로 참조로 전달됩니다. 이 두 클래스를 고려 (크게 단순화를 위해 삭감, 그것은 내가 관심이있는 두 GetInverse()
기능입니다) :
public class b2Mat22 {
public function GetInverse(out:b2Mat22) : b2Mat22 {
var a:Number = col1.x;
var b:Number = col2.x;
var c:Number = col1.y;
var d:Number = col2.y;
var det:Number = a * d - b * c;
if (det != 0.0)
{
det = 1.0/det;
}
out.col1.x = det * d; out.col2.x = -det * b;
out.col1.y = -det * c; out.col2.y = det * a;
return out;
}
public var col1:b2Vec2 = new b2Vec2();
public var col2:b2Vec2 = new b2Vec2();
}
및
public class b2Transform {
public function GetInverse(out:b2Transform = null) : b2Transform {
if (!out)
out = new b2Transform();
R.GetInverse(out.R);
out.position.SetV(b2Math.MulMV(out.R, position));
out.position.NegativeSelf();
return out;
}
public var position:b2Vec2 = new b2Vec2();
public var R:b2Mat22 = new b2Mat22();
}
내가 b2Transform
클래스 R.GetInverse(out.R);
을 이해하지 않습니다. b2Mat22
클래스의 GetInverse()
함수가 값을 반환하지 않습니까? 그렇다면 왜 사용되지 않는 것입니까?
감사합니다. 함수가 값을 반환한다고 선언 된 경우 Xojo 코드를 (해당 언어로) 조정할 필요가 있다는 것을 의미합니다. 사용해야 할 필요가 있습니다. – Garry