/// <summary> /// Создает чекбокс с указанным изображением /// </summary> public Checkbox(MultiSprite image, Sound soundClick) : base(image) { this.soundClick = soundClick; Checked = true; this.Click += new EventHandler <MouseElementEventArgs>(Checkbox_Click); }
/// <summary> /// Создает новую панель принятия решения с указанными параметрами /// </summary> /// <param name="content">Управляющий контентом для этой панели</param> /// <param name="sprite">Спрайт, изображение панели</param> /// <param name="text">Текст, который отображается на панели</param> public ApplyPanel(Screen owner, ContentManager content, Sprite sprite, string text) : base(owner, content, sprite) { this.text = text; font = content.Load <SpriteFont>(Fnames.PanelFont); bFont = content.Load <SpriteFont>(Fnames.ButtonFont); Button Cancel = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.CancelB, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 2.8f, Bounds.Top + (float)Bounds.Height / 4f * 2.5f), new Vector2(128 * (float)Bounds.Width / 390f, 35 * (float)Bounds.Height / 240f), Vector2.One), CreateSound3D(content, Fnames.UIButtonClick), CreateSound3D(content, Fnames.UIButtonSelect), bFont); Cancel.Text = ""; Cancel.Visible = false; Cancel.Click += new EventHandler <MouseElementEventArgs>(Cancel_Click); Cancel.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); Cancel.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Button Apply = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ApplyB, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 0.6f, Bounds.Top + (float)Bounds.Height / 4f * 2.5f), new Vector2(128 * (float)Bounds.Width / 390f, 35 * (float)Bounds.Height / 240f), Vector2.One), CreateSound3D(content, Fnames.UIButtonClick), CreateSound3D(content, Fnames.UIButtonSelect), bFont); Apply.Text = ""; Apply.Visible = false; Apply.Click += new EventHandler <MouseElementEventArgs>(Apply_Click); Apply.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); Apply.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Buttons.Add(Cancel); Buttons.Add(Apply); Components.AddRange(Buttons); }
public MapRenderable2D(MapData2D mapData, ITexture tileset, TilesetData tileData) : base(Handlers) { _mapData = mapData; _tileset = tileset; _tileData = tileData; _tileset.GetSubImageDetails(0, out var tileSize, out _, out _, out _); TileSize = tileSize; var underlay = new SpriteInstanceData[_mapData.Width * _mapData.Height]; var overlay = new SpriteInstanceData[_mapData.Width * _mapData.Height]; _underlay = new MultiSprite(new SpriteKey( _tileset, (int)DrawLayer.Underlay, underlay[0].Flags)) { Instances = underlay.ToArray() }; _overlay = new MultiSprite(new SpriteKey( _tileset, (int)DrawLayer.Overlay3, overlay[0].Flags)) { Instances = overlay.ToArray() }; }
public TexturePrev(MultiSprite image, Tiles tileType, ContentManager content) : base(image) { this.tileType = tileType; text = TextSprite.CreateSprite(content, Fnames.TEXT_FONT, new Vector2(image.Bounds.Left, image.Bounds.Bottom), tileType.ToString()); text.Position = new Vector2(image.Bounds.Left + (image.Bounds.Width - text.Size.X) / 2, image.Bounds.Bottom); }
public LoadPanel(Screen owner, ContentManager content, Sprite sprite) : base(owner, content, sprite) { bFont = content.Load <SpriteFont>(Fnames.ButtonFont); #region Buttons Button ExitLocal = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ExitLocalB, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 3.2f, Bounds.Top + (float)Bounds.Height / 4f * 3f), new Vector2(128, 35), Vector2.One), CreateSound3D(content, Fnames.UIButtonClick), CreateSound3D(content, Fnames.UIButtonSelect), bFont); ExitLocal.Text = ""; ExitLocal.Visible = false; ExitLocal.Click += new EventHandler <MouseElementEventArgs>(ExitLocal_Click); ExitLocal.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); ExitLocal.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Button Apply = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ApplyB, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 3f), new Vector2(128, 35), Vector2.One), CreateSound3D(content, Fnames.UIButtonClick), CreateSound3D(content, Fnames.UIButtonSelect), bFont); Apply.Text = ""; Apply.Visible = false; Apply.Click += new EventHandler <MouseElementEventArgs>(Apply_Click); Apply.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); Apply.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Buttons.Add(ExitLocal); Buttons.Add(Apply); #endregion Components.AddRange(Buttons); }
/// <summary> /// Создает кнопку с указанным изображением /// </summary> public Button(MultiSprite image) : base(image) { Animation = false; maxAnimCount = (int)animationMode; initPos = Position; initSize = Size; }
public SpriteShaderKey(MultiSprite sprite, EngineFlags engineFlags) : this( sprite.Key.Texture.ArrayLayers > 1, (sprite.Key.Flags & SpriteKeyFlags.NoDepthTest) == 0, sprite.Key.Texture is EightBitTexture, (engineFlags & EngineFlags.UseCylindricalBillboards) != 0 && (sprite.Key.Flags & SpriteKeyFlags.UseCylindrical) != 0) { }
public Element(Element g) { position = g.position; size = g.size; image = (MultiSprite)g.image.Clone(); bounds = g.bounds; vis = g.vis; }
/// <summary> /// Создает новый ползунок с указанными параметрами /// </summary> /// <param name="image">Изображение тела ползунка</param> /// <param name="image_">Изображение каретки ползунка</param> public Slider(MultiSprite image, Sprite image_) : base(image) { this.image_ = image_; this.image_.Color = new Color(255, 255, 255, 200); this.MouseMove += new EventHandler <MouseElementEventArgs>(Slider_MouseMove); value = 100; }
/// <summary> /// Создает новый элемент управления с указанным изображением /// </summary> /// <param name="image">Изображение для элемента управления</param> public Element(MultiSprite image) { this.position = image.Position; this.size = image.Size; this.image = image; bounds = new Rectangle((int)position.X, (int)position.Y, (int)size.X, (int)size.Y); vis = true; }
public TextboxULong(MultiSprite image, SpriteFont font, GraphicsDevice device) : base(image) { this.font = font; this.device = device; spriteBatch = new SpriteBatch(device); render = new RenderTarget2D(device, image.Width - 5, image.Height); this.Click += new EventHandler <MouseElementEventArgs>(Textbox_Click); }
public ListBox(MultiSprite image, MultiSprite meshSprite, SpriteFont font) : base(image) { mesh = meshSprite; mesh.Visible = false; step = (int)font.MeasureString("ASDFGHJKL:QWERTYUIOP{}ZXCVBNM<>?1234567890-=").Y + 4; this.font = font; this.Click += new EventHandler <MouseElementEventArgs>(ListBox_Click); }
/// <summary> /// Создает новый ползунок с указанными параметрами /// </summary> /// <param name="image">Изображение тела ползунка</param> /// <param name="image_">Изображение каретки ползунка</param> public Slider(MultiSprite image, Sprite image_, ContentManager content, string text = "") : base(image) { this.image_ = image_; this.image_.Color = Color.Black; this.text = TextSprite.CreateSprite(content, Fnames.TEXT_FONT, new Vector2(Image.Bounds.Left, Image.Bounds.Top), text); this.text.Position = new Vector2(Image.Bounds.Left + (Image.Bounds.Width - this.text.Size.X) / 2, Image.Bounds.Top - this.text.Size.Y); this.MouseMove += new EventHandler <MouseElementEventArgs>(Slider_MouseMove); Value = 100; }
void Rebuild(int width, int height, int order) { var window = Resolve <IWindowManager>(); { var normSize = window.UiToNormRelative(new Vector2(width, height)); var pixelSize = window.NormToPixelRelative(normSize); if ((pixelSize - _lastPixelSize).LengthSquared() < float.Epsilon && _sprite.RenderOrder == order) { return; } _lastPixelSize = pixelSize; } var totalSize = GetSize(); var extents = new Rectangle(0, 0, (int)totalSize.X, (int)totalSize.Y); var instances = new List <SpriteInstanceData>(); for (int j = extents.Y; j < extents.Height; j++) { for (int i = extents.X; i < extents.Width; i++) { int n = instances.Count; SpriteFlags flags = SpriteFlags.NoTransform | SpriteFlags.NoDepthTest; if ((n & 1) != 0) { flags |= SpriteFlags.BlueTint; } if ((n & 2) != 0) { flags |= SpriteFlags.GreenTint; } if ((n & 4) != 0) { flags |= SpriteFlags.RedTint; } if ((n & 8) != 0) { flags |= SpriteFlags.Highlight; } var position = new Vector3(window.UiToNorm(new Vector2(i, j)), 0); var size = 2 * Vector2.One / window.Size; instances.Add(SpriteInstanceData.Centred(position, size, Vector2.Zero, Vector2.One, 0, flags)); } } _sprite = new MultiSprite(new SpriteKey(_pixel, order, instances[0].Flags)) { Instances = instances.ToArray() }; }
public SavePanel(Screen owner, ContentManager content, Sprite sprite) : base(owner, content, sprite) { bFont = content.Load <SpriteFont>(Fnames.ButtonFont); font = content.Load <SpriteFont>(Fnames.SavePanelFont); #region Buttons Button ExitLocal = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ExitLocalB, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 3.2f, Bounds.Top + (float)Bounds.Height / 4f * 3f), new Vector2(128, 35), Vector2.One), CreateSound3D(content, Fnames.UIButtonClick), CreateSound3D(content, Fnames.UIButtonSelect), bFont); ExitLocal.Text = ""; ExitLocal.Visible = false; ExitLocal.Click += new EventHandler <MouseElementEventArgs>(ExitLocal_Click); ExitLocal.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); ExitLocal.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Button Apply = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ApplyB, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 3f), new Vector2(128, 35), Vector2.One), CreateSound3D(content, Fnames.UIButtonClick), CreateSound3D(content, Fnames.UIButtonSelect), bFont); Apply.Text = ""; Apply.Visible = false; Apply.Click += new EventHandler <MouseElementEventArgs>(Apply_Click); Apply.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); Apply.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Buttons.Add(ExitLocal); Buttons.Add(Apply); #endregion #region ListBox MultiSprite mesh = MultiSprite.CreateSprite(content, spriteBatch, Fnames.Mesh, Vector2.One, Vector2.One, Vector2.One); mesh.Color = new Color(0, 0, 0, 80); lbox = new ListBox(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ListBox, new Vector2(Bounds.Left + Bounds.Width / 1000f * 120, Bounds.Top + Bounds.Height / 1000f * 100), new Vector2(Bounds.Width / 1.3f, Bounds.Height / 1.6f), Vector2.One), mesh, font); lbox[0] = this; lbox[1] = this; lbox[4] = "Kirill the superman!"; lbox[9] = this; lbox[2] = bFont; lbox[3] = this; lbox[5] = this; //lbox[6] = lbox[7] = lbox[8] = this; #endregion Components.Add(lbox); Components.AddRange(Buttons); }
public MessagePanel(Screen owner, Sprite sprite, string text, string capture) : base(owner, sprite) { this.capture = capture; this.text = text; font = content.Load <SpriteFont>(Fnames.TEXT_FONT); Button Ok = new Button(MultiSprite.CreateSprite(content, Fnames.OK_B, new Vector2(Bounds.Left + Bounds.Width / 1000f * 450, Bounds.Top + Bounds.Height / 1000f * 800), new Vector2(120, 41), Vector2.One)); Ok.Click += new EventHandler <MouseElementEventArgs>(Ok_Click); Components.Add(Ok); }
protected override void LoadContent() { #region Background Texture2D f1 = Content.Load <Texture2D>(Fnames.BACKGROUND_FRAME1); Texture2D f2 = Content.Load <Texture2D>(Fnames.BACKGROUND_FRAME2); Texture2D f3 = Content.Load <Texture2D>(Fnames.BACKGROUND_FRAME3); Texture2D f4 = Content.Load <Texture2D>(Fnames.BACKGROUND_FRAME4); backGround.AddFrame(f1); backGround.AddFrame(f2); backGround.AddFrame(f3); backGround.AddFrame(f4); #endregion #region Buttons int start = 350; int step = 65; int count = 0; Button StartEdit = new Button(MultiSprite.CreateSprite(Content, Fnames.START_EDIT_B, new Vector2(Window.ClientBounds.Width / 2f - 80, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(160, 55), Vector2.One)); StartEdit.Click += new EventHandler <MouseElementEventArgs>(StartEdit_Click); StartEdit.AnimationMode = AnimationStates.Small; StartEdit.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); StartEdit.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Button Exit = new Button(MultiSprite.CreateSprite(Content, Fnames.EXIT_B2, new Vector2(Window.ClientBounds.Width / 2f - 80, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(160, 55), Vector2.One)); Exit.AnimationMode = AnimationStates.Small; Exit.Click += new EventHandler <MouseElementEventArgs>(Exit_Click); Exit.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); Exit.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); buttons.Add(StartEdit); buttons.Add(Exit); #endregion #region Panels mapInitPanel = new MapInitPanel(this, Sprite.CreateSprite(Content, Fnames.PANEL1, new Vector2(Window.ClientBounds.Width / 1000f * 220, Window.ClientBounds.Height / 1000f * 250), new Vector2(730, 500))); mapInitPanel.Enabled += new EventHandler <EventArgs>(panel_Enabled); mapInitPanel.Disabled += new EventHandler <EventArgs>(panel_Disabled); mapInitPanel.CreateCalled += new EventHandler <MapInitEventArgs>(mapInitPanel_CreateCalled); #endregion Components.AddRange(buttons); Components.Add(mapInitPanel); }
/// <summary> /// Создает кнопку с указанным изображением /// </summary> public Button(MultiSprite image, Sound3D soundClick, Sound3D soundSelection, SpriteFont font) : base(image) { this.soundSelection = soundSelection; this.soundClick = soundClick; this.font = font; this.text = "button"; this.textPos = new Vector2(Bounds.X + Bounds.Width / 2, Bounds.Y + Bounds.Height / 2) - font.MeasureString(text) / 2; Animation = false; this.MouseMoveIn += new EventHandler <MouseElementEventArgs>(Button_MouseMoveIn); this.Click += new EventHandler <MouseElementEventArgs>(Button_Click); initPos = Position; initSize = Size; }
/// <summary> /// Создает новый элемента PrevList с указанными параметрами. /// Правая часть скопируется с левой и отразится по горизонтали /// </summary> /// <param name="image">Изображение левой части элемента</param> /// <param name="content">Управляющий контентом</param> /// <param name="prevsInOneDim">Максимальное кол-во элементов TexturePrev в одном измерении</param> /// <param name="formatMethod">Метод, применяемый к каждому элементу TexturePrev при горизонтальном форматировании (вертикальное форматирование встроено)</param> public PrevList(MultiSprite image, ContentManager content, ushort prevsInOneDim, Action <TexturePrev> formatMethod) : base(image) { currentListNumberText = TextSprite.CreateSprite(content, Fnames.TEXT_FONT, new Vector2(image.Bounds.Right + 1, image.Bounds.Top), ""); currentListNumberText.Position = new Vector2(image.Bounds.Right + 1, image.Bounds.Top); image2 = (MultiSprite)image.Clone(); image2.SpriteEffect = SpriteEffects.FlipHorizontally; image2.MoveOn(new Vector2(image.Size.X + currentListNumberText.Font.MeasureString("0").X + 2, 0)); list.Add(new List <TexturePrev>()); CurrentListNumber = 0; PrevsInOneDim = prevsInOneDim; FormatMethod = formatMethod; this.Click += new EventHandler <MouseElementEventArgs>(PrevList_Click); this.ClickRight += new EventHandler <MouseElementEventArgs>(PrevList_ClickRight); }
public static void Init(ContentManager CM, GraphicsDevice GD) { Texture2D expl = CM.Load <Texture2D>("Explode1"); Texture2D exp3 = CM.Load <Texture2D>("Explode3"); Eksplozja1 = new MultiSprite(ref expl, 23, 23, 8, 1, 1, 1); Eksplozja3 = new MultiSprite(ref exp3, 49, 49, 4, 2, 0, 0); for (int i = 0; i < 8; i++) { Planety[i] = CM.Load <Texture2D>("Planety\\planet" + (i + 1).ToString()); } PolozeniePlanet[0] = new Vector2(270f, 510f); PolozeniePlanet[1] = new Vector2(0f, 600f); PowerUps[0] = CM.Load <Texture2D>("PowerUps\\bonustest"); PowerUps[1] = CM.Load <Texture2D>("PowerUps\\Double"); PowerUps[2] = CM.Load <Texture2D>("PowerUps\\Laser"); PowerUps[3] = CM.Load <Texture2D>("PowerUps\\PointBlue"); PowerUps[4] = CM.Load <Texture2D>("PowerUps\\PointBrown"); PowerUps[5] = CM.Load <Texture2D>("PowerUps\\PointGreen"); PowerUps[6] = CM.Load <Texture2D>("PowerUps\\PointRed"); StatekGracza = CM.Load <Texture2D>("Ship"); Statki[0] = CM.Load <Texture2D>("Ship2"); Bossowie[0] = CM.Load <Texture2D>("Boss"); FontNazwaLvl = CM.Load <SpriteFont>("testfont"); PrzyciskGraj = CM.Load <Texture2D>("ButtonGra"); PrzyciskInfo = CM.Load <Texture2D>("Opcje"); PrzyciskExit = CM.Load <Texture2D>("Exit"); PrzyciskHelp = CM.Load <Texture2D> ("Help"); HelpOverall = CM.Load <Texture2D>("HelpOverall"); InfoOverall = CM.Load <Texture2D>("InfoOverall"); Empty = new Texture2D(GD, 1, 1); Color[] pixels = new Color[1]; pixels[0] = Color.White; Empty.SetData <Color>(pixels); }
/// <summary> /// Создает новый экземпляр CreditsPanel с указанными параметрами /// </summary> /// <param name="content">Управляющий контентом для этой панели</param> /// <param name="sprite">Спрайт, изображение панели</param> /// <param name="text">Текст, прописанный в панели "Об авторах"</param> public CreditsPanel(Screen owner, ContentManager content, Sprite sprite, string text) : base(owner, content, sprite) { this.text = text; font = content.Load <SpriteFont>(Fnames.BigFont); bFont = content.Load <SpriteFont>(Fnames.ButtonFont); Button ExitLocal = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ExitLocalB, new Vector2(sprite.Bounds.Left + (float)sprite.Bounds.Width / 5f * 3.2f, sprite.Bounds.Top + (float)sprite.Bounds.Height / 4f * 3.2f), new Vector2(128, 35), Vector2.One), CreateSound3D(content, Fnames.UIButtonClick), CreateSound3D(content, Fnames.UIButtonSelect), bFont); ExitLocal.Text = ""; ExitLocal.Visible = false; ExitLocal.Click += new EventHandler <MouseElementEventArgs>(ExitLocal_Click); ExitLocal.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); ExitLocal.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Buttons.Add(ExitLocal); Components.AddRange(Buttons); }
public PrevList(PrevList g) : base(g) { formatMethod = g.formatMethod; image2 = (MultiSprite)g.image2.Clone(); currentListNumber = g.currentListNumber; currentListNumberText = (TextSprite)g.currentListNumberText.Clone(); list = new List <List <TexturePrev> >(); for (int i = 0; i < g.list.Count; i++) { AddDimension(); foreach (var prev in g.list[i]) { list[i].Add((TexturePrev)prev.Clone()); } } prevs = new List <TexturePrev>(); foreach (var prev in g.prevs) { prevs.Add((TexturePrev)prev.Clone()); } prevsInOneDim = g.prevsInOneDim; currentListNumber = g.currentListNumber; }
/// <summary> /// Обработчик клавиатуры /// </summary> /// <param name="kbs">Текущее состояние калвиатуры</param> /// <param name="okbs">Предшествующее состояние клавиатуры</param> protected override void KeyboardHandler(KeyboardState kbs, KeyboardState okbs) { Vector2 msPos = MousePosition(MS); if (kbs.IsKeyDown(Keys.LeftControl) && !okbs.IsKeyDown(Keys.LeftControl)) { isCtrl = true; } if (kbs.IsKeyUp(Keys.LeftControl) && !okbs.IsKeyUp(Keys.LeftControl)) { isCtrl = false; } #region Debug if (kbs.IsKeyDown(Keys.W) && !okbs.IsKeyDown(Keys.W)) { new TCSwordman(msPos.X - 15, msPos.Y - 15, 100, 10, 3, Vector2.Zero, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.Swordman, new Vector2(msPos.X - 15, msPos.Y - 15), new Vector2(72, 72), new Vector2(5, 24), World.FPS)); } if (kbs.IsKeyDown(Keys.E) && !okbs.IsKeyDown(Keys.E)) { new TEnemy(msPos.X - 15, msPos.Y - 15, 100, 10, 0, Vector2.Zero, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.Enemy, new Vector2(msPos.X - 15, msPos.Y - 15), new Vector2(30, 30), new Vector2(6, 2), World.FPS)); } if (kbs.IsKeyDown(Keys.T) && !okbs.IsKeyDown(Keys.T)) { new TStone(msPos.X - 30, msPos.Y - 30, 500, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.Stone, new Vector2(msPos.X - 30, msPos.Y - 30), new Vector2(60, 60), new Vector2(1, 2), World.FPS)); } if (kbs.IsKeyDown(Keys.G) && !okbs.IsKeyDown(Keys.G)) { new TTree(msPos.X - 30, msPos.Y - 30, 150, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.BigTree, new Vector2(msPos.X - 30, msPos.Y - 30), new Vector2(60, 60), new Vector2(3, 1), World.FPS)); } if (kbs.IsKeyDown(Keys.H) && !okbs.IsKeyDown(Keys.H)) { new TTree(msPos.X - 25, msPos.Y - 25, 100, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.SmallTree, new Vector2(msPos.X - 25, msPos.Y - 25), new Vector2(50, 50), new Vector2(3, 1), World.FPS)); } if (kbs.IsKeyDown(Keys.A) && !okbs.IsKeyDown(Keys.A)) { new TCityCenter(msPos.X - 70, msPos.Y - 70, 500, 5, true, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.CityCenter, new Vector2(msPos.X - 70, msPos.Y - 70), new Vector2(150, 140), new Vector2(3, 1), World.FPS)); } if (kbs.IsKeyDown(Keys.F) && !okbs.IsKeyDown(Keys.F)) { new TFarm(msPos.X - 60, msPos.Y - 34, 250, 1, true, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.Farm, new Vector2(msPos.X - 60, msPos.Y - 34), new Vector2(120, 67), new Vector2(3, 1), World.FPS)); } if (kbs.IsKeyDown(Keys.B) && !okbs.IsKeyDown(Keys.B)) { new TBaracks(msPos.X - 48, msPos.Y - 46, 400, 4, true, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.Baracks, new Vector2(msPos.X - 48, msPos.Y - 46), new Vector2(97, 92), new Vector2(3, 1), World.FPS)); } if (kbs.IsKeyDown(Keys.Space) && !okbs.IsKeyDown(Keys.Space)) { if (TObjectUnderPoint(MS.X, MS.Y) is IHP) { (TObjectUnderPoint(MS.X, MS.Y) as IHP).HP -= 60; } if (TObjectUnderPoint(MS.X, MS.Y) is ISource) { (TObjectUnderPoint(MS.X, MS.Y) as ISource).Supply -= 49; } } if (kbs.IsKeyDown(Keys.Enter) && !okbs.IsKeyDown(Keys.Enter)) { Saver.Save(); } if (kbs.IsKeyDown(Keys.RightShift) && !okbs.IsKeyDown(Keys.RightShift)) { Loader.Load(); } if (kbs.IsKeyDown(Keys.Delete) && !okbs.IsKeyDown(Keys.Delete)) { if (TObjectUnderPoint(MS.X, MS.Y) != null) { TObjectUnderPoint(MS.X, MS.Y).Dispose(); } } #endregion }
/// <summary> /// Создает новый экземпляр CreditsPanel с указанными параметрами /// </summary> /// <param name="content">Управляющий контентом для этой панели</param> /// <param name="sprite">Спрайт, изображение панели</param> /// <param name="spriteBatch">Спрайт батч, нужный для создания чекбоксов</param> /// <param name="settings">Настройки игры</param> public OptionsPanel(Screen owner, ContentManager content, Sprite sprite, Settings settings) : base(owner, content, sprite) { checkboxes = new List <Checkbox>(); sliders = new List <Slider>(); font = content.Load <SpriteFont>(Fnames.PanelFont); bFont = content.Load <SpriteFont>(Fnames.ButtonFont); this.settings = settings; initMusicV = settings.MusicVolume; #region Buttons Button ExitLocal = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ExitLocalB, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 3.2f, Bounds.Top + (float)Bounds.Height / 4f * 3f), new Vector2(128, 35), Vector2.One), CreateSound3D(content, Fnames.UIButtonClick), CreateSound3D(content, Fnames.UIButtonSelect), bFont); ExitLocal.Text = ""; ExitLocal.Visible = false; ExitLocal.Click += new EventHandler <MouseElementEventArgs>(ExitLocal_Click); ExitLocal.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); ExitLocal.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Button Apply = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ApplyB, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 3f), new Vector2(128, 35), Vector2.One), CreateSound3D(content, Fnames.UIButtonClick), CreateSound3D(content, Fnames.UIButtonSelect), bFont); Apply.Text = ""; Apply.Visible = false; Apply.Click += new EventHandler <MouseElementEventArgs>(Apply_Click); Apply.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); Apply.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Buttons.Add(ExitLocal); Buttons.Add(Apply); #endregion #region Checkboxes musicMute = new Checkbox(MultiSprite.CreateSprite(content, spriteBatch, Fnames.Checkbox1, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 1f), new Vector2(42, 39), new Vector2(2, 1)), CreateSound(content, Fnames.UIButtonClick)); musicMute.Visible = false; musicMute.Checked = !settings.MusicIsMuted; musicMute.Click += new EventHandler <MouseElementEventArgs>(musicMute_Click); soundMute = new Checkbox(MultiSprite.CreateSprite(content, spriteBatch, Fnames.Checkbox1, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 1.8f), new Vector2(42, 39), new Vector2(2, 1)), CreateSound(content, Fnames.UIButtonClick)); soundMute.Visible = false; soundMute.Checked = !settings.SoundIsMuted; soundMute.Click += new EventHandler <MouseElementEventArgs>(soundMute_Click); Checkboxes.Add(musicMute); Checkboxes.Add(soundMute); #endregion #region Sliders musicSlider = new Slider(MultiSprite.CreateSprite(content, spriteBatch, Fnames.Slider1, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 1.4f), new Vector2(238, 26), Vector2.One), Sprite.CreateSprite(content, Fnames.Slider_, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 1.4f), new Vector2(12, 26))); musicSlider.Visible = false; musicSlider.MouseMove += new EventHandler <MouseElementEventArgs>(musicSlider_MouseMove); musicSlider.Value = settings.MusicVolume; soundSlider = new Slider(MultiSprite.CreateSprite(content, spriteBatch, Fnames.Slider1, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 2.2f), new Vector2(238, 26), Vector2.One), Sprite.CreateSprite(content, Fnames.Slider_, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 2.2f), new Vector2(12, 26))); soundSlider.Visible = false; soundSlider.MouseMove += new EventHandler <MouseElementEventArgs>(soundSlider_MouseMove); soundSlider.Value = settings.SoundVolume; Sliders.Add(musicSlider); Sliders.Add(soundSlider); #endregion Components.AddRange(Buttons); Components.AddRange(Checkboxes); Components.AddRange(Sliders); }
public MapInitPanel(Screen owner, Sprite sprite) : base(owner, sprite) { TextFont = content.Load <SpriteFont>(Fnames.TEXT_FONT); NumFont = content.Load <SpriteFont>(Fnames.SEGOE_UI); #region Buttons Button Create = new Button(MultiSprite.CreateSprite(content, Fnames.CREATE_B, new Vector2(Bounds.Right - Bounds.Width / 1000f * 250, Bounds.Top + Bounds.Height / 1000f * 700), new Vector2(120, 41), Vector2.One)); Create.AnimationMode = AnimationStates.Small; Create.Click += new EventHandler <MouseElementEventArgs>(Create_Click); Create.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); Create.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Button Cancel = new Button(MultiSprite.CreateSprite(content, Fnames.CANCEL_B, new Vector2(Bounds.Right - Bounds.Width / 1000f * 250, Bounds.Top + Bounds.Height / 1000f * 800), new Vector2(120, 41), Vector2.One)); Cancel.AnimationMode = AnimationStates.Small; Cancel.Click += new EventHandler <MouseElementEventArgs>(Cancel_Click); Cancel.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); Cancel.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); buttons.Add(Create); buttons.Add(Cancel); #endregion #region Textboxes TileWidthBox = new TextboxULong(MultiSprite.CreateSprite(content, Fnames.TEXTBOX1, new Vector2(Bounds.Left + Bounds.Width / 1000f * 125, Bounds.Top + Bounds.Height / 1000f * 150).Round(), new Vector2(160, 31), Vector2.One), NumFont, owner.GraphicsDevice); TileWidthBox.ValueChanged += new EventHandler <ValueChangedEventArgs <ulong> >(TileWidthBox_ValueChanged); TileWidthBox.MaxTextLength = 2; TileWidthBox.Value = 64; FieldWidthBox = new TextboxULong(MultiSprite.CreateSprite(content, Fnames.TEXTBOX1, new Vector2(Bounds.Left + Bounds.Width / 1000f * 125, Bounds.Top + Bounds.Height / 1000f * 280).Round(), new Vector2(160, 31), Vector2.One), NumFont, owner.GraphicsDevice); FieldWidthBox.ValueChanged += new EventHandler <ValueChangedEventArgs <ulong> >(FieldWidthBox_ValueChanged); FieldWidthBox.MaxTextLength = 4; FieldWidthBox.Value = 5000; FieldHeightBox = new TextboxULong(MultiSprite.CreateSprite(content, Fnames.TEXTBOX1, new Vector2(Bounds.Left + Bounds.Width / 1000f * 125, Bounds.Top + Bounds.Height / 1000f * 380).Round(), new Vector2(160, 31), Vector2.One), NumFont, owner.GraphicsDevice); FieldHeightBox.ValueChanged += new EventHandler <ValueChangedEventArgs <ulong> >(FieldHeightBox_ValueChanged); FieldHeightBox.MaxTextLength = 4; FieldHeightBox.Value = 4000; textboxes.Add(TileWidthBox); textboxes.Add(FieldWidthBox); textboxes.Add(FieldHeightBox); #endregion msgPanel = new MessagePanel(owner, Sprite.CreateSprite(content, Fnames.PANEL2, new Vector2(450, 350), new Vector2(350, 250)), " ", " "); msgPanel.Enabled += new EventHandler <EventArgs>(msgPanel_Enabled); msgPanel.Disabled += new EventHandler <EventArgs>(msgPanel_Disabled); Components.AddRange(buttons); Components.AddRange(textboxes); Components.Add(msgPanel); }
public UIPanel(Screen owner, Sprite sprite) : base(owner, sprite) { mapRect = new Rectangle(1085, 808, 180, 200); bottomPanelRect = new Rectangle(18, 808, 1065, 200); rightPanelRect = new Rectangle(1085, 18, 178, 800); prevViewRect = new Rectangle(bottomPanelRect.X + 650, bottomPanelRect.Y + 15, 125, 125); this.ChangeCurrentPrev += new EventHandler <ChangePrevEventArgs>(UIPanel_ChangeCurrentPrev); #region Texture Prevs TexturePrev SnowPrev = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.SNOW, new Vector2(rightPanelRect.X, rightPanelRect.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Snow, content); TexturePrev DustPrev = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.DUST, new Vector2(rightPanelRect.X, SnowPrev.Position.Y + SnowPrev.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Dust, content); TexturePrev Grass1 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.GRASS1, new Vector2(rightPanelRect.X, DustPrev.Position.Y + DustPrev.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Grass1, content); TexturePrev Grass2 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.GRASS2, new Vector2(rightPanelRect.X, Grass1.Position.Y + DustPrev.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Grass2, content); TexturePrev Grass3 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.GRASS3, new Vector2(rightPanelRect.X, Grass2.Position.Y + DustPrev.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Grass3, content); TexturePrev DarkGrassPrev = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.DARK_GRASS, new Vector2(rightPanelRect.X, Grass3.Position.Y + Grass1.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.DarkGrass, content); TexturePrev GrassPath = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.GRASS_PATH, new Vector2(rightPanelRect.X, DarkGrassPrev.Position.Y + Grass1.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.GrassPath, content); TexturePrev Sand1 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.SAND1, new Vector2(rightPanelRect.X, GrassPath.Position.Y + Grass1.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Sand1, content); TexturePrev Sand2 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.SAND2, new Vector2(rightPanelRect.X, Sand1.Position.Y + Grass1.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Sand2, content); TexturePrev Sand3 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.SAND3, new Vector2(rightPanelRect.X, Sand2.Position.Y + Grass1.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Sand3, content); TexturePrev Sand4 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.SAND4, new Vector2(rightPanelRect.X, Sand3.Position.Y + Grass1.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Sand4, content); TexturePrev Water1a = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.WATER1_A, new Vector2(rightPanelRect.X, Sand4.Position.Y + DarkGrassPrev.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Water1a, content); TexturePrev Water1b = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.WATER1_B, new Vector2(rightPanelRect.X, Water1a.Position.Y + DarkGrassPrev.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Water1b, content); TexturePrev Water1c = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.WATER1_C, new Vector2(rightPanelRect.X, Water1b.Position.Y + DarkGrassPrev.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Water1c, content); TexturePrev Water1d = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.WATER1_D, new Vector2(rightPanelRect.X, Water1c.Position.Y + DarkGrassPrev.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Water1d, content); TexturePrev Water2 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.WATER2, new Vector2(rightPanelRect.X, Water1d.Position.Y + Water1a.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Water2, content); TexturePrev Water3a = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.WATER3_A, new Vector2(rightPanelRect.X, Water2.Position.Y + Water2.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Water3a, content); TexturePrev Water3b = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.WATER3_B, new Vector2(rightPanelRect.X, Water3a.Position.Y + Water2.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Water3b, content); TexturePrev Water3c = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.WATER3_C, new Vector2(rightPanelRect.X, Water3b.Position.Y + Water2.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Water3c, content); TexturePrev Ford1 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.FORD1, new Vector2(rightPanelRect.X, Water3c.Position.Y + Water2.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Ford1, content); TexturePrev Road1 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.ROAD1, new Vector2(rightPanelRect.X, Ford1.Position.Y + Water2.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Road1, content); TexturePrev Road2 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.ROAD2, new Vector2(rightPanelRect.X, Road1.Position.Y + Water2.Size.Y + 50), new Vector2(80, 80), Vector2.One), Tiles.Road2, content); prevsList.Add(SnowPrev); prevsList.Add(DustPrev); prevsList.Add(Grass1); prevsList.Add(Grass2); prevsList.Add(Grass3); prevsList.Add(DarkGrassPrev); prevsList.Add(GrassPath); prevsList.Add(Sand1); prevsList.Add(Sand2); prevsList.Add(Sand3); prevsList.Add(Sand4); prevsList.Add(Water1a); prevsList.Add(Water1b); prevsList.Add(Water1c); prevsList.Add(Water1d); prevsList.Add(Water2); prevsList.Add(Water3a); prevsList.Add(Water3b); prevsList.Add(Water3c); prevsList.Add(Ford1); prevsList.Add(Road1); prevsList.Add(Road2); prevsList.ForEach((x) => x.Click += new EventHandler <MouseElementEventArgs>(texturePrev_Click)); #endregion #region Navigator Navigator = new PrevList(MultiSprite.CreateSprite(content, Fnames.ARROW, new Vector2(rightPanelRect.X + 50, rightPanelRect.Y + 15), new Vector2(32, 24), Vector2.One), content, 5, (x) => x.Position = new Vector2(rightPanelRect.X + rightPanelRect.Width / 2 - x.Size.X / 2, x.Position.Y)); foreach (var prev in prevsList) { Navigator.AddPrev(prev); } #endregion #region Sliders r_Slider = new Slider(MultiSprite.CreateSprite(content, Fnames.SLIDER, new Vector2(bottomPanelRect.X + 50, bottomPanelRect.Y + 50), new Vector2(150, 23), Vector2.One), Sprite.CreateSprite(content, Fnames.SLIDER_, new Vector2(bottomPanelRect.X + 50, bottomPanelRect.Y + 50 + 18), new Vector2(12, 12)), Color.Red, content, "Red component"); g_Slider = new Slider(MultiSprite.CreateSprite(content, Fnames.SLIDER, new Vector2(bottomPanelRect.X + 50 + 200, bottomPanelRect.Y + 50), new Vector2(150, 23), Vector2.One), Sprite.CreateSprite(content, Fnames.SLIDER_, new Vector2(bottomPanelRect.X + 50 + 200, bottomPanelRect.Y + 50 + 18), new Vector2(12, 12)), Color.Green, content, "Green component"); b_Slider = new Slider(MultiSprite.CreateSprite(content, Fnames.SLIDER, new Vector2(bottomPanelRect.X + 50 + 400, bottomPanelRect.Y + 50), new Vector2(150, 23), Vector2.One), Sprite.CreateSprite(content, Fnames.SLIDER_, new Vector2(bottomPanelRect.X + 50 + 400, bottomPanelRect.Y + 50 + 18), new Vector2(12, 12)), Color.Blue, content, "Blue component"); sliders.Add(r_Slider); sliders.Add(g_Slider); sliders.Add(b_Slider); foreach (var slider in sliders) { slider.Visible = false; slider.ValueChanged += new EventHandler <ValueChangedEventArgs <float> >(slider_ValueChanged); } #endregion #region Buttons Button Fill = new Button(MultiSprite.CreateSprite(content, Fnames.FILL_B, new Vector2(bottomPanelRect.X + 50, bottomPanelRect.Y + 150), new Vector2(126, 36), Vector2.One)); Fill.Click += new EventHandler <MouseElementEventArgs>(Fill_Click); Fill.Visible = false; Button Save = new Button(MultiSprite.CreateSprite(content, Fnames.SAVE_B, new Vector2(bottomPanelRect.Right - 160, bottomPanelRect.Y + 15), new Vector2(126, 36), Vector2.One)); Save.Click += new EventHandler <MouseElementEventArgs>(Save_Click); Button Load = new Button(MultiSprite.CreateSprite(content, Fnames.LOAD_B, new Vector2(bottomPanelRect.Right - 160, Save.Position.Y + Save.Size.Y + 10), new Vector2(126, 36), Vector2.One)); Load.Click += new EventHandler <MouseElementEventArgs>(Load_Click); Button Clear = new Button(MultiSprite.CreateSprite(content, Fnames.CLEAR_B, new Vector2(bottomPanelRect.Right - 160, Load.Position.Y + Save.Size.Y + 10), new Vector2(126, 36), Vector2.One)); Clear.Click += new EventHandler <MouseElementEventArgs>(Clear_Click); Button Exit = new Button(MultiSprite.CreateSprite(content, Fnames.EXIT_B, new Vector2(bottomPanelRect.Right - 160, Clear.Position.Y + Save.Size.Y + 10), new Vector2(126, 36), Vector2.One)); Exit.Click += new EventHandler <MouseElementEventArgs>(Exit_Click); notStaticButtons.Add(Fill); staticButtons.Add(Save); staticButtons.Add(Load); staticButtons.Add(Clear); staticButtons.Add(Exit); buttons.AddRange(staticButtons); buttons.AddRange(notStaticButtons); foreach (var button in buttons) { button.AnimationMode = AnimationStates.Small; button.MouseMoveIn += new EventHandler <MouseElementEventArgs>(Button_MouseMoveIn); button.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); } #endregion Components.Add(Navigator); Components.AddRange(sliders); Components.AddRange(buttons); }
public PlayerOne(TextureManager _t, Renderer renderer) { this.renderer = renderer; Width = 32; Height = 48; position = new Vector2D(0, 50); //Texture texture = _t.Get("Player00"); //sprite = new Sprite(); //sprite.Texture = texture; //sprite.SetWidth(Width); //sprite.SetHeight(Height); //sprite.SetPosition(position.X, position.Y); //multiSprite = new MultiSprite(sprite); //RecTangleF[] rects = new RecTangleF[8]; //for (int i = 0; i < 8;i++ ) // rects[i] = new RecTangleF(0 + i * 4 * per_256, 0, 4 * per_256 + i * 4 * per_256, 6 * per_256); //multiSprite.RegeditState(0, rects); //将此rectangleF注册到0号state //multiSprite.State = 0; //将状态切换为0号state Texture texture = _t.Get("Player2"); sprite = new Sprite(); sprite.Texture = texture; sprite.SetWidth(Width); sprite.SetHeight(Height); sprite.SetPosition(position.X, position.Y); multiSprite = new MultiSprite(sprite); RecTangleF[] rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) { rects[i] = new RecTangleF(0 + i * 4 * per_256, 0, 4 * per_256 + i * 4 * per_256, 6 * per_256); } multiSprite.RegeditState(0, rects); //将此rectangleF注册到0号state rects = new RecTangleF[3]; for (int i = 0; i < 3; i++) { rects[i] = new RecTangleF(i * 4 * per_256, 6 * per_256, 4 * per_256 + i * 4 * per_256, 12 * per_256); } multiSprite.RegeditState(1, rects); //将此rectangleF注册到1号state (过渡移动) rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) { rects[i] = new RecTangleF(12 * per_256 + i * 4 * per_256, 6 * per_256, 12 * per_256 + 4 * per_256 + i * 4 * per_256, 12 * per_256); } multiSprite.RegeditState(2, rects); //将此rectangleF注册到2号state (移动) rects = new RecTangleF[3]; for (int i = 0; i < 3; i++) { rects[i] = new RecTangleF(4 * per_256 + i * 4 * per_256, 6 * per_256, i * 4 * per_256, 12 * per_256); } multiSprite.RegeditState(3, rects); //将此rectangleF注册到3号state (过渡移动,右) rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) { rects[i] = new RecTangleF(12 * per_256 + 4 * per_256 + i * 4 * per_256, 6 * per_256, 12 * per_256 + i * 4 * per_256, 12 * per_256); } multiSprite.RegeditState(4, rects); //将此rectangleF注册到4号state (移动) multiSprite.RegeditCollection(1, 2); //将1号动画连接到2号动画上 multiSprite.RegeditCollection(3, 4); //将3号动画连接到4号动画上 multiSprite.State = 1; //将状态切换为1号state }
public PlayerOne(TextureManager _t , Renderer renderer) { this.renderer = renderer; Width = 32; Height = 48; position = new Vector2D(0, 50); //Texture texture = _t.Get("Player00"); //sprite = new Sprite(); //sprite.Texture = texture; //sprite.SetWidth(Width); //sprite.SetHeight(Height); //sprite.SetPosition(position.X, position.Y); //multiSprite = new MultiSprite(sprite); //RecTangleF[] rects = new RecTangleF[8]; //for (int i = 0; i < 8;i++ ) // rects[i] = new RecTangleF(0 + i * 4 * per_256, 0, 4 * per_256 + i * 4 * per_256, 6 * per_256); //multiSprite.RegeditState(0, rects); //将此rectangleF注册到0号state //multiSprite.State = 0; //将状态切换为0号state Texture texture = _t.Get("Player2"); sprite = new Sprite(); sprite.Texture = texture; sprite.SetWidth(Width); sprite.SetHeight(Height); sprite.SetPosition(position.X, position.Y); multiSprite = new MultiSprite(sprite); RecTangleF[] rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) rects[i] = new RecTangleF(0 + i * 4 * per_256, 0, 4 * per_256 + i * 4 * per_256, 6 * per_256); multiSprite.RegeditState(0, rects); //将此rectangleF注册到0号state rects = new RecTangleF[3]; for (int i = 0; i < 3; i++) rects[i] = new RecTangleF( i * 4 * per_256, 6 * per_256, 4 * per_256 + i * 4 * per_256, 12 * per_256); multiSprite.RegeditState(1, rects); //将此rectangleF注册到1号state (过渡移动) rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) rects[i] = new RecTangleF(12*per_256 + i * 4 * per_256, 6*per_256, 12*per_256+ 4 * per_256 + i * 4 * per_256, 12 * per_256); multiSprite.RegeditState(2, rects); //将此rectangleF注册到2号state (移动) rects = new RecTangleF[3]; for (int i = 0; i < 3; i++) rects[i] = new RecTangleF(4 * per_256 + i * 4 * per_256, 6 * per_256, i * 4 * per_256, 12 * per_256); multiSprite.RegeditState(3, rects); //将此rectangleF注册到3号state (过渡移动,右) rects = new RecTangleF[4]; for (int i = 0; i < 4; i++) rects[i] = new RecTangleF(12 * per_256 + 4 * per_256 + i * 4 * per_256, 6 * per_256, 12 * per_256 + i * 4 * per_256 , 12 * per_256); multiSprite.RegeditState(4, rects); //将此rectangleF注册到4号state (移动) multiSprite.RegeditCollection(1, 2); //将1号动画连接到2号动画上 multiSprite.RegeditCollection(3, 4); //将3号动画连接到4号动画上 multiSprite.State = 1; //将状态切换为1号state }
protected override void LoadContent() { arial = Content.Load <SpriteFont>(Fnames.Arial14); obj = Content.Load <SpriteFont>(Fnames.obj); arialB = Content.Load <SpriteFont>(Fnames.MSReferenceSansSerif14B); World.Flag.Image = new Sprite(Content); World.Flag.Image.LoadTexture(Fnames.Flag); World.Flag.Visible = false; Vector2 ScaleFactor = new Vector2(210 * ((float)Window.ClientBounds.Width / 1280), 200 * ((float)Window.ClientBounds.Height / 1024)); panel = new Panel(Game, arial, arialB, Window.ClientBounds); panel.UIPanelClick += new EventHandler <UIPanelEventArgs>(panel_UIPanelClick); panel.ObjectIconClick += new EventHandler <ObjectIconsEventArgs>(panel_ObjectIconClick); ground = new Ground(World.Field, cfg.Ground); mesh = new MeshSelection(Game, Fnames.Mesh); minimap = new Minimap(Game, World.Field, new Rectangle(Right - (int)(Right / 5.2), Bottom - (int)(Bottom / 4.55), (int)ScaleFactor.X, (int)ScaleFactor.Y), ground.Tiles); minimap.Click += new EventHandler <MinimapMouseEventArgs>(minimap_Click); World.Panel = panel; scene = new Scene(World.Field, panel); #region Game.Components Game.Components.Clear(); Game.Components.Add(panel); Game.Components.Add(mesh); Game.Components.Add(minimap); Game.Components.Add(new FPS(Game, Fnames.Arial14, new Vector2(Window.ClientBounds.Width / 2f, 0))); Game.Components.Add(new GameCursor(Game, Fnames.Cursor)); #endregion #region Music Song fearNotThisNight = Content.Load <Song>(Fnames.FearNotThisNight); Song windGuideYou = Content.Load <Song>(Fnames.WindGuideYou); Song heritageOfKings = Content.Load <Song>(Fnames.HeritageOfKings); Song stronghold = Content.Load <Song>(Fnames.Stronghold); Song elfish1 = Content.Load <Song>(Fnames.Elfish1); Song elfish2 = Content.Load <Song>(Fnames.Elfish2); Song elfish3 = Content.Load <Song>(Fnames.Elfish3); player.Add(windGuideYou); player.Add(fearNotThisNight); player.Add(heritageOfKings); player.Add(stronghold); player.Add(elfish1); player.Add(elfish2); player.Add(elfish3); #endregion if (!cfg.MusicIsMuted) { player.Shuffle(); if (random.Next(100) == 1) { MakeBonus(); } player.Start(); } #if true for (int i = 0; i < 1000; i++) { new TStone(random.Next(World.Field.Width), random.Next(World.Field.Height), random.Next(500), MultiSprite.CreateSprite(Content, spriteBatch, Fnames.Stone, new Vector2(random.Next(World.Field.Width), random.Next(World.Field.Height)), new Vector2(60, 60), new Vector2(1, 2), World.FPS)); string name = (random.Next(0, 2) == 0) ? Fnames.BigTree : Fnames.SmallTree; new TTree(random.Next(World.Field.Width), random.Next(World.Field.Height), i + 50, MultiSprite.CreateSprite(Content, spriteBatch, name, new Vector2(random.Next(World.Field.Width), random.Next(World.Field.Height)), new Vector2(60, 60), new Vector2(3, 1), World.FPS)); } for (int i = 0; i < 1000; i++) { new TCSwordman(random.Next(World.Field.Width - 36), random.Next(World.Field.Height - 36), 100, 10, 3, Vector2.Zero, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.Swordman, new Vector2(random.Next(World.Field.Width - 36), random.Next(World.Field.Height - 36)), new Vector2(72, 72), new Vector2(5, 24), World.FPS)); } #if false for (int i = 0; i < 1000; i++) { new TEnemy(random.Next(World.Field.Width), random.Next(World.Field.Height), 100, 10, 3, Vector2.Zero, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.Enemy, new Vector2(random.Next(World.Field.Width), random.Next(World.Field.Height)), new Vector2(30, 30), new Vector2(6, 2), World.FPS)); } #endif #endif BuildingRectangleSprite = new Sprite(Content); BuildingRectangleSprite.LoadTexture(Fnames.Mesh, Vector2.Zero, Vector2.One); BuildingRectangleSprite.Visible = false; BuildingRectangle = new BuildingRectangle(BuildingRectangleSprite); }
/// <summary> /// Загрузка контента (вызывается после Initialize()) /// </summary> protected override void LoadContent() { backgroundFont = Content.Load <SpriteFont>(Fnames.OldEnglishTextMT); bFont = Content.Load <SpriteFont>(Fnames.ButtonFont); #region Buttons int start = 300; int step = (cfg.ResolutionHeight == 600) ? 65 : 50; int count = 0; Button Continue = new Button(MultiSprite.CreateSprite(Content, spriteBatch, Fnames.ContinueB, new Vector2(Window.ClientBounds.Width / 2f - 122, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(244, 36), Vector2.One), CreateSound3D(Content, Fnames.UIButtonClick), CreateSound3D(Content, Fnames.UIButtonSelect), bFont); Button New = new Button(MultiSprite.CreateSprite(Content, spriteBatch, Fnames.NewB, new Vector2(Window.ClientBounds.Width / 2f - 122, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(244, 36), Vector2.One), CreateSound3D(Content, Fnames.UIButtonClick), CreateSound3D(Content, Fnames.UIButtonSelect), bFont); Button Save = new Button(MultiSprite.CreateSprite(Content, spriteBatch, Fnames.SaveB, new Vector2(Window.ClientBounds.Width / 2f - 122, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(244, 36), Vector2.One), CreateSound3D(Content, Fnames.UIButtonClick), CreateSound3D(Content, Fnames.UIButtonSelect), bFont); Button Load = new Button(MultiSprite.CreateSprite(Content, spriteBatch, Fnames.LoadB, new Vector2(Window.ClientBounds.Width / 2f - 122, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(244, 36), Vector2.One), CreateSound3D(Content, Fnames.UIButtonClick), CreateSound3D(Content, Fnames.UIButtonSelect), bFont); Button Options = new Button(MultiSprite.CreateSprite(Content, spriteBatch, Fnames.OptionsB, new Vector2(Window.ClientBounds.Width / 2f - 122, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(244, 36), Vector2.One), CreateSound3D(Content, Fnames.UIButtonClick), CreateSound3D(Content, Fnames.UIButtonSelect), bFont); Button Credits = new Button(MultiSprite.CreateSprite(Content, spriteBatch, Fnames.CreditsB, new Vector2(Window.ClientBounds.Width / 2f - 122, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(244, 36), Vector2.One), CreateSound3D(Content, Fnames.UIButtonClick), CreateSound3D(Content, Fnames.UIButtonSelect), bFont); Button Exit = new Button(MultiSprite.CreateSprite(Content, spriteBatch, Fnames.ExitGlobalB, new Vector2(Window.ClientBounds.Width / 2f - 122, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(244, 36), Vector2.One), CreateSound3D(Content, Fnames.UIButtonClick), CreateSound3D(Content, Fnames.UIButtonSelect), bFont); Continue.Text = ""; Continue.Click += new EventHandler <MouseElementEventArgs>(Continue_Click); Continue.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); Continue.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Continue.Visible = isContinue = false; continueB = Continue; New.Text = ""; New.Click += new EventHandler <MouseElementEventArgs>(New_Click); New.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); New.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Save.Text = ""; Save.Click += new EventHandler <MouseElementEventArgs>(Save_Click); Save.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); Save.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Load.Text = ""; Load.Click += new EventHandler <MouseElementEventArgs>(Load_Click); Load.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); Load.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Options.Text = ""; Options.Click += new EventHandler <MouseElementEventArgs>(Options_Click); Options.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); Options.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Credits.Text = ""; Credits.Click += new EventHandler <MouseElementEventArgs>(Credits_Click); Credits.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); Credits.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); Exit.Text = ""; Exit.Click += new EventHandler <MouseElementEventArgs>(Exit_Click); Exit.MouseMove += new EventHandler <MouseElementEventArgs>(Button_MouseMove); Exit.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut); buttons.Add(Continue); buttons.Add(New); buttons.Add(Save); buttons.Add(Load); buttons.Add(Options); buttons.Add(Credits); buttons.Add(Exit); #endregion #region Panels string text = "Do you really want to exit?"; exitApplyPanel = new ApplyPanel(this, Content, Sprite.CreateSprite(Content, Fnames.Panel, new Vector2(Window.ClientBounds.Width / 3f, Window.ClientBounds.Height / 3f), new Vector2(780 * (float)Window.ClientBounds.Width / 1280f / 2f, 640 * (float)Window.ClientBounds.Height / 1024f / 3f)), text); exitApplyPanel.ApplyAction += new Action(() => Game.Exit()); exitApplyPanel.ExitAction += new Action(() => exitApplyPanel.Visible = false); exitApplyPanel.Enabled += new EventHandler <EventArgs>(panel_Enabled); exitApplyPanel.Disabled += new EventHandler <EventArgs>(panel_Disabled); optionsPanel = new OptionsPanel(this, Content, Sprite.CreateSprite(Content, Fnames.Panel, new Vector2(Window.ClientBounds.Width / 5.2f, Window.ClientBounds.Height / 6.8f), new Vector2(780 * (float)Window.ClientBounds.Width / 1280f, 640 * (float)Window.ClientBounds.Height / 1024f)), settings); optionsPanel.Enabled += new EventHandler <EventArgs>(panel_Enabled); optionsPanel.Disabled += new EventHandler <EventArgs>(panel_Disabled); optionsPanel.Disabled += new EventHandler <EventArgs>((object sender, EventArgs e) => settings = (Settings)optionsPanel.ApplyedSettings.Clone()); optionsPanel.ApplyAction += new Action(() => { if (optionsPanel.ApplyedSettings.MusicIsMuted) { player.Stop(); } else { player.Start(); } }); text = String.Format("{0}\n{1}\n{2}", "Credits: ", "1) Bolshakov Kirill", "http://vk.com/overlordff"); creditsPanel = new CreditsPanel(this, Content, Sprite.CreateSprite(Content, Fnames.Panel, new Vector2(Window.ClientBounds.Width / 5.2f, Window.ClientBounds.Height / 6.8f), new Vector2(780 * (float)Window.ClientBounds.Width / 1280f, 640 * (float)Window.ClientBounds.Height / 1024f)), text); creditsPanel.Enabled += new EventHandler <EventArgs>(panel_Enabled); creditsPanel.Disabled += new EventHandler <EventArgs>(panel_Disabled); savePanel = new SavePanel(this, Content, Sprite.CreateSprite(Content, Fnames.Panel, new Vector2(Window.ClientBounds.Width / 5.2f, Window.ClientBounds.Height / 6.8f), new Vector2(780 * (float)Window.ClientBounds.Width / 1280f, 640 * (float)Window.ClientBounds.Height / 1024f))); savePanel.Enabled += new EventHandler <EventArgs>(panel_Enabled); savePanel.Disabled += new EventHandler <EventArgs>(panel_Disabled); loadPanel = new LoadPanel(this, Content, Sprite.CreateSprite(Content, Fnames.Panel, new Vector2(Window.ClientBounds.Width / 5.2f, Window.ClientBounds.Height / 6.8f), new Vector2(780 * (float)Window.ClientBounds.Width / 1280f, 640 * (float)Window.ClientBounds.Height / 1024f))); loadPanel.Enabled += new EventHandler <EventArgs>(panel_Enabled); loadPanel.Disabled += new EventHandler <EventArgs>(panel_Disabled); #endregion Song deathSong = Content.Load <Song>(Fnames.DeathSong); Song epicScore = Content.Load <Song>(Fnames.EpicScore); if (random.NextDouble() >= 0.5) { background = Content.Load <Texture2D>(Fnames.BackgroundSword); player.Add(deathSong); optionsPanel.Color = new Color(70, 70, 255); creditsPanel.Color = new Color(70, 70, 255); exitApplyPanel.Color = new Color(70, 70, 255); savePanel.Color = new Color(70, 70, 255); loadPanel.Color = new Color(70, 70, 255); } else { background = Content.Load <Texture2D>(Fnames.BackgroundKnight); player.Add(epicScore); optionsPanel.Color = new Color(174, 160, 75); creditsPanel.Color = new Color(174, 160, 75); exitApplyPanel.Color = new Color(174, 160, 75); savePanel.Color = new Color(174, 160, 75); loadPanel.Color = new Color(174, 160, 75); } Game.Components.Clear(); Game.Components.Add(new FPS(Game, Fnames.Arial14, new Vector2(Window.ClientBounds.Width / 2f - 25, 0))); Game.Components.Add(new GameCursor(Game, Fnames.Cursor)); Components.Add(exitApplyPanel); Components.Add(optionsPanel); Components.Add(creditsPanel); Components.Add(savePanel); Components.Add(loadPanel); Components.AddRange(buttons); if (!cfg.MusicIsMuted) { player.Start(); } }