public static LevelBackgroundGF CreateLevelBackground(GraphicsDevice device, GravitiForceLevel gfl, ContentManager content) { LevelBackgroundGF result = new LevelBackgroundGF(); result.gfl = gfl; texture = content.Load<Texture2D>(@"gfx/Alien.bmap"); /* result.declaration = new VertexDeclaration(device, VertexPositionTexture.VertexElements); // result.texture = TextureLoader.FromFile( // device, // Path.Combine(DirectorySettings.MediaDir, textureFilename), // D3DX.Default, D3DX.Default, D3DX.Default, 0, Format.Unknown, // Pool.Managed, Filter.Triangle, // Filter.Triangle, 0); Bitmap levelBitmap = gfl.GetBitmap(); MemoryStream ms = new MemoryStream(); levelBitmap = new Bitmap(levelBitmap); levelBitmap.Save(ms,System.Drawing.Imaging.ImageFormat.Bmp);; //levelBitmap.Save(@"c:\test.bmp",System.Drawing.Imaging.ImageFormat.Bmp);; ms.Position = 0; result.texture = Texture2D.FromFile(device, ms); //result.texture = content.Load<Texture2D>(@"test"); //result.vertexes = VertexBuffer.CreateGeneric<Direct3D.CustomVertex.PositionTextured>(device, // 4, Usage.WriteOnly, Direct3D.CustomVertex.PositionTextured.Format, Pool.Managed, null); result.bounds = new Rectangle(0, 0, levelBitmap.Width, levelBitmap.Height); //result.vertexes. VertexPositionTexture[] pt = new VertexPositionTexture[4]; result.vertexes = pt; pt[0].Position = new Vector3(result.bounds.Left, result.bounds.Top, 0); pt[1].Position = new Vector3(result.bounds.Right, result.bounds.Top, 0); pt[2].Position = new Vector3(result.bounds.Right, result.bounds.Bottom, 0); pt[3].Position = new Vector3(result.bounds.Left, result.bounds.Bottom, 0); pt[0].TextureCoordinate = new Vector2(0, 1); pt[1].TextureCoordinate = new Vector2(1, 1); pt[2].TextureCoordinate = new Vector2(1, 0); pt[3].TextureCoordinate = new Vector2(0, 0); result.levelWidth = levelBitmap.Width; */ return result; }
public static GravitiForceLevel ReadGravitiForceLevelFile(string fileName) { GravitiForceLevel gfl = new GravitiForceLevel(); gfl.FileName = fileName; gfl.Name = gfl.FileName.Substring(2, gfl.FileName.LastIndexOf('.') - 2).Replace("~3f", "?"); gfl.type = GetTypeOfLevel(gfl.FileName.Substring(0, 2)); byte[] inBuffer; Assembly assembly = Assembly.GetCallingAssembly(); using(Stream stream = assembly.GetManifestResourceStream(levelPath + "." + fileName)) { inBuffer = new byte[stream.Length]; stream.Read(inBuffer, 0, inBuffer.Length); } gfl.LevelData = gfl.Decrypt(inBuffer); gfl.playerBase = new Point[2]; gfl.playerBase[0] = new Point(gfl.LevelData[94] * 256 + gfl.LevelData[95], gfl.LevelData[98] * 256 + gfl.LevelData[99]); gfl.playerBase[1] = new Point(gfl.LevelData[102] * 256 + gfl.LevelData[103], gfl.LevelData[106] * 256 + gfl.LevelData[107]); return gfl; }
private void levelTreeView_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e) { GravitiForceLevel gfl = null; TreeNode typeNode = levelTreeView.SelectedNode; if(typeNode != null) { gfl = typeNode.Tag as GravitiForceLevel; } if(gfl != null) { levelPictureBox.Image = gfl.GetBitmap(); Settings.Current.FileName = gfl.FileName; } }
public void OnResetDevice(object sender, EventArgs e) { Device dev = (Device)sender; gfl = null; playerShips = new ObjectShip[Settings.Current.Players.Length]; if((levelTreeView.SelectedNode != null) && (levelTreeView.SelectedNode.Tag is GravitiForceLevel)) { gfl = (GravitiForceLevel)levelTreeView.SelectedNode.Tag; levelBackground = LevelBackgroundGF.CreateLevelBackground(dev, gfl); shipBase = new ShipBase[2]; shipBase[0] = new ShipBase(new Vector3((float)(gfl.playerBase[0].X - 104), (float)(997f - gfl.playerBase[0].Y), 0f)); shipBase[1] = new ShipBase(new Vector3((float)(gfl.playerBase[1].X - 104), (float)(997f - gfl.playerBase[1].Y), 0f)); for(int i = 0; i < playerShips.Length; i++) { playerShips[i] = ObjectShip.CreateShip(dev); playerShips[i].Position = shipBase[i].Position; } bullerBuffer = new BulletBuffer(dev); } else { //levelBackground = LevelBackgroundTest.CreateLevelBackground(dev); } lastTime = Environment.TickCount; deviceLost = false; }