githubEdit

Initialize

Introduction

The Initialize method can be used to reset the PositionedObject variables back to their default state. Specifically, the Initialize method resets:

Method Signature

The signature for Initialize is as follows:

public virtual void Initialize()
public virtual void Initialize(bool clearListsBelongingTo)

Arguments:

  • bool clearListsBelongingTo - Whether the object should clear its ListsBelongingToarrow-up-right property. If this property is not specified, then the default value is true.

The dangers of clearListsBelongingTo

The FlatRedBall Engine depends on the two-way relationship that exists between IAttachablesarrow-up-right (an interface of the PositionedObject) and two-way lists that the IAttachablearrow-up-right belongs to. Calling the no-argument version of Initialize, or passing true as the argument will result in the the PositionedObject breaking its two-way relationships with other objects, but it will not be removed from those lists. Let's look at a simple example where this can cause errors. The following code creates a PositionedObject, adds it to the SpriteManager for management, initializes, then attempts to remove it:

To avoid the bug shown above, you should either:

  1. Initialize before adding to the SpriteManager

  2. Pass false as the argument to Initialize

Last updated

Was this helpful?