Altseed2 icon indicating copy to clipboard operation
Altseed2 copied to clipboard

親子関係を持つノードの間でIsDrawnActuallyの状態が同期されないことがある

Open numanicloud opened this issue 2 years ago • 1 comments

Describe the bug/概要

親子関係のあるノード群で、親ノードが IsDrawn == false の状態で親を Engine.AddNode すると子が IsDrawnActually == true になる問題があるみたいです。

Environment/環境

  • OS: Windows 11

  • Graphics:

  • Altseed2 version: 2.2.2

To Reproduce/再現手順

以下のコードで再現します。 最初の100フレームの間は親が表示されず、子は表示されます。 次の100フレームの間は親は表示され、子も表示されます。 その後は、親も子も表示されません。

using Altseed2;

Engine.Initialize("AltseedIsDrawnError", 640, 480);

var node = new CircleNode()
{
	Color = new Color(255, 255, 255, 255),
	Position = new Vector2F(320, 240),
	Radius = 5
};

var node2 = new CircleNode()
{
	Color = new Color(255, 0, 0, 255),
	Position = new Vector2F(40, 40),
	Radius = 5
};

node.AddChildNode(node2);
node.IsDrawn = false;
Engine.AddNode(node);

int frame = 0;

while (Engine.DoEvents())
{
	Engine.Update();
	++frame;

	if (frame == 100)
	{
		node.IsDrawn = true;
	}
	else if (frame == 200)
	{
		node.IsDrawn = false;
	}
}

Engine.Terminate();

Expected behavior/期待される動作

上のコードで、起動した直後から親ノードも子ノードも表示されないほうが望ましいのではないかと思います。

Screenshots/スクリーンショット

numanicloud avatar May 03 '22 13:05 numanicloud