예제 #1
0
        public static void Init()
        {
            model = new ObjMesh("Resources\\Models\\Planets\\Rock1.obj");
            tex = Game.LoadTexture("Resources\\Textures\\Rock-Texture-Surface.jpg");

            asteriods = new List<Asteroid>();
            //asteriods.Add(new Asteroid(new Vector3(0, 0, -100), new Vector3(0, 0, 30f), 3f));
            //asteriods.Add(new Asteroid(new Vector3(0, 0, 100), new Vector3(0, 0, -30f), 1f));

            for (int i = 0; i < 200; i++)
            {
                Vector3 pos = new Vector3(AppSettings.random.Next(100, 500), AppSettings.random.Next(100, 500), AppSettings.random.Next(100, 500));
                Vector3 n = -Vector3.UnitX;
                n.Normalize();
                Asteroid a = new Asteroid(pos, n*10, AppSettings.random.Next(1, 5));
                asteriods.Add(a);

            }

            for (int i = 0; i < 200; i++)
            {
                Vector3 pos = new Vector3(0-AppSettings.random.Next(100, 500), AppSettings.random.Next(100, 500), AppSettings.random.Next(100, 500));
                Vector3 n = Vector3.UnitX;
                n.Normalize();
                Asteroid a = new Asteroid(pos, n * 10, AppSettings.random.Next(1, 5));
                asteriods.Add(a);

            }
        }
예제 #2
0
        public Player()
            : base()
        {
            speedRotate = 90f/60f/2f;           //ne praš k neznam razložit XD
            speedForward = 10f;
            speedBackward = 10f;         //primer: 90 stopinj na sekundo, pa deliš z 60 ker je 60 frameov, nevem kuko sm to dobu ampak dela
            speedStrafe = 10f;
            speedUp = 10f;

            accForward = 1f;
            accStrafe = 1f;
            accUp = 1f;

            forward = new Vector3(0, 0, 1);
            up = new Vector3(0, 1, 0);
            left = new Vector3(1, 0, 0);
            prevX = VesoljskiBoj.Game.game.Mouse.X;
            prevY = VesoljskiBoj.Game.game.Mouse.Y;

            model = new ObjMesh("Resources\\Models\\Spaceship\\Spaceship.obj");
            //model = new ObjMesh("Resources\\Models\\Endor Battlecruiser\\Endor Battlecruiser.obj");
            texture = Game.LoadTexture("Resources\\Models\\Spaceship\\spaceship.png");

            //centerOffset = new Vector3(0, -130, 0);
            centerOffset = new Vector3(0, 0, 0);

            bb = new BoundingBox(model,1f);
        }
예제 #3
0
 public Planet(bool asd)
     : base()
 {
     if (asd)
     {
         model = new ObjMesh("Resources\\Models\\Planets\\earthTest.obj");
         tex = Game.LoadTexture("Resources\\Textures\\earthHD.jpg");
     }
     else
     {
         model = new ObjMesh("Resources\\Models\\Planets\\planet2.obj");
         tex = Game.LoadTexture("Resources\\Textures\\planet2.png");
     }
     this.asd = asd;
 }
예제 #4
0
 public static bool Load(ObjMesh mesh, string fileName)
 {
     try
     {
         using (StreamReader streamReader = new StreamReader(fileName))
         {
             Load(mesh, streamReader);
             streamReader.Close();
             return true;
         }
     }
     catch(Exception e) {
         Console.WriteLine(e.ToString());
         return false; }
 }
예제 #5
0
        static void Load(ObjMesh mesh, TextReader textReader)
        {
            vertices = new List<Vector3>();
            normals = new List<Vector3>();
            texCoords = new List<Vector2>();
            objVerticesIndexDictionary = new Dictionary<ObjMesh.ObjVertex, int>();
            objVertices = new List<ObjMesh.ObjVertex>();
            objTriangles = new List<ObjMesh.ObjTriangle>();
            objQuads = new List<ObjMesh.ObjQuad>();

            string line;
            while ((line = textReader.ReadLine()) != null)
            {
                line = line.Trim(splitCharacters);
                line = line.Replace("  ", " ");

                string[] parameters = line.Split(splitCharacters);

                switch (parameters[0])
                {
                    case "p": // Point
                        break;

                    case "v": // Vertex
                        float x = float.Parse(parameters[1], System.Globalization.CultureInfo.InvariantCulture);
                        float y = float.Parse(parameters[2], System.Globalization.CultureInfo.InvariantCulture);
                        float z = float.Parse(parameters[3], System.Globalization.CultureInfo.InvariantCulture);
                        vertices.Add(new Vector3(x, y, z));
                        break;

                    case "vt": // TexCoord
                        float u = float.Parse(parameters[1], System.Globalization.CultureInfo.InvariantCulture);
                        float v = float.Parse(parameters[2], System.Globalization.CultureInfo.InvariantCulture);
                        texCoords.Add(new Vector2(u, v));
                        break;

                    case "vn": // Normal
                        float nx = float.Parse(parameters[1], System.Globalization.CultureInfo.InvariantCulture);
                        float ny = float.Parse(parameters[2], System.Globalization.CultureInfo.InvariantCulture);
                        float nz = float.Parse(parameters[3], System.Globalization.CultureInfo.InvariantCulture);
                        normals.Add(new Vector3(nx, ny, nz));
                        break;

                    case "f":
                        switch (parameters.Length)
                        {
                            case 4:
                                ObjMesh.ObjTriangle objTriangle = new ObjMesh.ObjTriangle();
                                objTriangle.Index0 = ParseFaceParameter(parameters[1]);
                                objTriangle.Index1 = ParseFaceParameter(parameters[2]);
                                objTriangle.Index2 = ParseFaceParameter(parameters[3]);
                                objTriangles.Add(objTriangle);
                                break;

                            case 5:
                                ObjMesh.ObjQuad objQuad = new ObjMesh.ObjQuad();
                                objQuad.Index0 = ParseFaceParameter(parameters[1]);
                                objQuad.Index1 = ParseFaceParameter(parameters[2]);
                                objQuad.Index2 = ParseFaceParameter(parameters[3]);
                                objQuad.Index3 = ParseFaceParameter(parameters[4]);
                                objQuads.Add(objQuad);
                                break;
                        }
                        break;
                }
            }

            mesh.Vertices = objVertices.ToArray();
            mesh.Triangles = objTriangles.ToArray();
            mesh.Quads = objQuads.ToArray();

            objVerticesIndexDictionary = null;
            vertices = null;
            normals = null;
            texCoords = null;
            objVertices = null;
            objTriangles = null;
            objQuads = null;
        }