Ejemplo n.º 1
0
        public void Init(ParticleArea a)
        {
            a.BeginInvoke(new Action(() =>
            {
                MeshGeometry3D geom = new MeshGeometry3D();
                model          = new GeometryModel3D();
                model.Geometry = geom;

                DiffuseMaterial material = new DiffuseMaterial(Factory.CreateParticle());

                model.Material = material;

                positions = new Point3DCollection();
                indices   = new Int32Collection();
                texcoords = new PointCollection();

                geom.Positions          = positions;
                geom.TriangleIndices    = indices;
                geom.TextureCoordinates = texcoords;

                particleArea  = a;
                this.viewPort = a.ViewPort;
                a.WorldModels.Children.Add(model);
            }));
        }
Ejemplo n.º 2
0
 public ParticleArea GetParticleArea()
 {
     if (particleArea == null)
     {
         ParticleArea.FrameTimer.Dispatcher.Invoke(new Action(() => {
             particleArea = LogicalTreeHelper.FindLogicalNode(GetCanvas(), "particleArea") as ParticleArea;
         }));
     }
     return(particleArea);
 }
Ejemplo n.º 3
0
        private void CleanObjects()
        {
            if (area != null)
            {
                Invoke(new Action(() =>
                {
                    area.Clear();
                }));
            }

            objectsToRemove.Clear();
            objects.Clear();
            objectsToAdd.Clear();

            if (particleArea != null)
            {
                particleArea.ClearAll();
            }

            particleArea = null;
        }
Ejemplo n.º 4
0
        public void CloseGameWindowAndCleanup(GameEnd endType, bool forceQuit = false)
        {
            if (GameType != Gametype.TOURNAMENT_GAME || endType == GameEnd.SERVER_DISCONNECTED || endType == GameEnd.TOURNAMENT_FINISHED)
            {
                RequestStop();
            }

            gameRunning = false;

            StateMgr.Clear();

            if (Application.Current == null)
            {
                return;
            }

            if (forceQuit)
            {
                NormalGameEnded();
            }
            else if (GameType == Gametype.TOURNAMENT_GAME && endType != GameEnd.SERVER_DISCONNECTED && endType != GameEnd.TOURNAMENT_FINISHED)
            {
                TournamentGameEnded();
            }
            else if (endType != GameEnd.TOURNAMENT_FINISHED)
            {
                NormalGameEnded();
            }

            if (particleArea != null)
            {
                particleArea.ClearAll();
            }

            particleArea = null;
        }