示例#1
0
        /// <summary>
        /// Changes object visibility.
        /// (true) Creates SceneNode and checks Entity (if is null -> initializes). Calls OnDisplayed.
        /// (false) Destroys SceneNode and stored actual position.
        /// </summary>
        public virtual void ChangeVisible(bool visible)
        {
            if (visible && !this.isVisible)
            {
                // Controls if the entity is inicialized
                if (entity == null)
                {
                    entity = Game.SceneManager.CreateEntity(name, mesh);
                }

                sceneNode = Game.SceneManager.RootSceneNode.CreateChildSceneNode(name + "Node", position.Value);
                sceneNode.AttachObject(entity);
                this.isVisible = true;
                OnDisplayed();
            }
            else
            {
                if (this.isVisible)
                {
                    position.Value = sceneNode.Position;
                    Game.SceneManager.DestroySceneNode(sceneNode);
                    sceneNode = null;
                    isVisible = false;
                }
            }
        }
示例#2
0
        /// <summary>
        /// Changes visibility of the sun (creates or destroys SceneNode).
        /// </summary>
        /// <param name="visible">boolean value if the sun is visible or not</param>
        public void ChangeVisible(bool visible)             //now creating
        {
            if (visible)
            {
                if (entity == null)
                {
                    entity = Game.SceneManager.CreateEntity(name, mesh);
                }
                sceneNode = Game.SceneManager.RootSceneNode.CreateChildSceneNode(name + "Node", Mogre.Vector3.ZERO);

                sceneNode.Pitch(new Mogre.Degree(-90f));
                sceneNode.AttachObject(entity);
            }
            else
            {
                Game.SceneManager.DestroySceneNode(sceneNode);
                sceneNode = null;
            }
        }