Ejemplo n.º 1
0
        /// <summary>
        /// 自分が親としてAddSceneされる時に情報を保持する
        /// </summary>
        public void AddChild(SceneData addSceneData)
        {
            ActiveChildren.Add(addSceneData);

            // 親を自分とする
            addSceneData.Parent = this;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// AddSceneDataをキャッシュリストに情報を移動させる
        /// その後AddSceneDataは削除
        /// </summary>
        public void MoveToCacheByChildData()
        {
            PrevChildren.Clear();
            PrevChildren.AddRange(ActiveChildren);

            ActiveChildren.Clear();
        }
Ejemplo n.º 3
0
        public void Render(SpriteBatch batch, AssetManager assetManager)
        {
            RenderPosition = Position
                             + (Parent?.RenderPosition ?? Vector2.Zero);

            RenderTransform = (Parent?.RenderTransform ?? Matrix.Identity) * Transform();

            if (!CustomBatch)
            {
                batch.Begin(transformMatrix: RenderTransform, samplerState: Camera2D.SamplerState);
            }
            Renderer?.Render(this, batch, assetManager);
            if (!CustomBatch)
            {
                batch.End();
            }

            foreach (var entity in ActiveChildren.Where(x => !x.Hidden))
            {
                entity.Render(batch, assetManager);
            }
        }
Ejemplo n.º 4
0
 public void RemoveChild(SceneData addSceneData)
 {
     addSceneData.Parent = null;
     ActiveChildren.Remove(addSceneData);
 }