public LevelEditor(CStrikeModel model) { driver = model.DriverInstance; input = model.Input; CurrentState = EditorStates.Edit; driver.Model.Camera.Position = new Vector2(225, 250); }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Initialize Model and View Assets = new Assets(this); View = new CStrikeView(this); Model = new CStrikeModel(this, center, dimensions); Model.Initialize(); // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); }
/// <summary> /// Draws all components of the game /// </summary> /// <param name="sb"></param> /// <param name="model"></param> public void Draw(SpriteBatch sb, CStrikeModel model) { switch (model.CurState) { case CStrikeModel.State.Menu: // Begin shader render model.Shader.BeginRender(); sb.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.AnisotropicClamp, null, null, null); // Show counter-terrorist background if true, terrorist background if false sb.Draw(model.MenuBackgroundType ? assets.CTMenuBackground : assets.TMenuBackground, Vector2.Zero, Color.White); // Draw Background UI elements foreach (GUIPage page in model.InterfaceManager.GUIPages) { switch (page.Identifier) { case "optionsMenu": sb.End(); // Draw gui components which are clipped at the edges sb.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.AnisotropicClamp, null, cullableRasterizer, null); sb.GraphicsDevice.ScissorRectangle = new Rectangle(0, 100, 1280, 620); foreach (GUIComponent component in page.Components) { switch (component.Identifier) { case "masterVolumeText": ((TextBox)component).Draw(sb, " " + model.AudioManager.MasterVolume); break; case "uiVolumeText": ((TextBox)component).Draw(sb, " " + model.AudioManager.UiVolume); break; case "musicVolumeText": ((TextBox)component).Draw(sb, " " + model.AudioManager.MusicVolume); break; case "sfxVolumeText": ((TextBox)component).Draw(sb, " " + model.AudioManager.SoundEffectVolume); break; case "voiceVolumeText": ((TextBox)component).Draw(sb, " " + model.AudioManager.VoiceVolume); break; default: component.Draw(sb); break; } } sb.End(); sb.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.AnisotropicClamp, null, null, null); break; case "defaultMenu": sb.End(); sb.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.AnisotropicClamp, null, cullableRasterizer, null); sb.GraphicsDevice.ScissorRectangle = new Rectangle(0, 19, 1280, 82); page.Draw(sb); sb.End(); sb.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.AnisotropicClamp, null, null, null); break; default: page.Draw(sb); break; } } sb.End(); // Draws the shader model.Shader.Draw(sb); sb.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null, null); break; case CStrikeModel.State.Options: break; case CStrikeModel.State.Lobby: // Draws the lobby connection sb.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null, null); sb.DrawString(assets.DefaultFont, "Connect to Server: " + model.Address, Vector2.Zero, Color.White); sb.DrawString(assets.DefaultFont, "Username: "******"FPS: " + model.DriverInstance.FPS, new Vector2(model.Dimensions.X - (assets.DefaultFont.MeasureString("FPS: " + model.DriverInstance.FPS).X), 0), Color.White); sb.End(); }