在c#中本身内部调用方法

问题描述 投票:0回答:1

[我研究了其他类似的帖子,但无法从他们那里找到我真正需要的东西,如果您看到类似的帖子,对不起。

我正在处理一个单游戏GameObject类,并正在为父级和子级GameObjects实现一个系统,但是当前的设计仅迭代层次结构的一个级别,例如,如果Parent是I,则其子级J会随之移动,但是J的孩子Q不会动。

为了解决这个问题,我想知道是否可以在其内部调用相同的方法

这里是用于移动父/子对象的示例代码

        public void Transform(Vector2 newPosition)
        {  
            if (children.Count != 0)
            {
                foreach (GameObject i in children)
                {
                    Vector2 diff = new Vector2(-(position.X - newPosition.X), -(position.Y - newPosition.Y));
                    i.position = i.position + diff;
                    i.Transform(new Vector2(i.position.X, i.position.Y));
                }
            }
            position.X = newPosition.X;
            position.Y = newPosition.Y;
        }

正如您所看到的,我试图在自身内部运行该方法,但是,当程序运行时,第一个父级以下的每个子级都不会移动。

感谢您的帮助

c# monogame
1个回答
0
投票

是。这是一种称为recursion

的标准计算机科学技术。
© www.soinside.com 2019 - 2024. All rights reserved.