public override void Update(GameTime gameTime) { _preMouse = _curMouse; _curMouse = Mouse.GetState(); if (_preMouse.LeftButton == ButtonState.Pressed && _curMouse.LeftButton == ButtonState.Pressed) { if (!_dragTimer.IsRunning && EventsHandler.MouseRectangle.Intersects(SpriteRectangle) && !Dragging) { _dragTimer.Start(); } if (_dragTimer.ElapsedMilliseconds > 50) { if (!ParentSprite.Contains(ItemSprite) && !Dragging) { RemoveChild(ItemSprite); ParentSprite.AddChild(ItemSprite); ActiveDescription.Visible = false; DraggedIndex = ItemIndex; } Dragging = true; ItemSprite.IsZeroApplicaple = true; ItemSprite.X = EventsHandler.MouseRectangle.X; ItemSprite.Y = EventsHandler.MouseRectangle.Y; } } else { if (Dragging) { ParentSprite.RemoveLastChild(); OnDropped?.Invoke(); Dragging = false; } if (_dragTimer.IsRunning) { _dragTimer.Reset(); _dragTimer.Stop(); } } base.Update(gameTime); }
private void onSelected(object sender, EventArgs e) { if (ClassIndex == -1) { _chooseCharacterBar.Init(this); ParentSprite.AddChild(_chooseCharacterBar); } else { CharacterSettings.CurrentCharacterId = CharacterIndex; App.Warn($"Character Selected: {CharacterSettings.CurrentCharacterId}"); } }
public ItemCell(int id, int itemidx, int x, int y) : base(x, y, 50, 50, AssetLibrary.Images["itemDisplayRect"]) { Id = id; ItemIndex = itemidx; if (Id != -1) { XmlContent = XmlLibrary.ItemsXml[Id]; } ItemSprite = new Sprite(10, 10, 30, 30, (XmlContent == null) ? null : XmlLibrary.GetSpriteFromContent(XmlContent)); //DescriptionBox = new DescriptionPanel(DrawHelper.CenteredToScreenWidth(300), DrawHelper.CenteredToScreenHeight(400), XmlContent.Name); //DescriptionBox.IsZeroApplicaple = true; ActiveDescription = new ActiveDescriptionBox(0, 0); ActiveDescription.Reload((XmlContent == null) ? null : XmlContent); ActiveDescription.Visible = false; ActiveDescription.IsZeroApplicaple = true; ActiveDescription.IsEventApplicable = false; AddChild(ItemSprite); AddEventListener(Event.MOUSEOVER, delegate { SpriteColor = Color.Yellow; Selected = true; if (!Dragging && Id != -1) { if (!ParentSprite.Contains(ActiveDescription)) { ParentSprite.AddChild(ActiveDescription); } ActiveDescription.Visible = true; ActiveDescription.X = EventsHandler.MouseRectangle.X; ActiveDescription.Y = EventsHandler.MouseRectangle.Y; } }); AddEventListener(Event.MOUSEOUT, delegate { SpriteColor = Color.Gray; Selected = false; ActiveDescription.Visible = false; }); }
public void Init(CharacterRect parent) { _parent = parent; int spriteX = 10; _meleeClass = new Sprite(spriteX, 10, 120, 120, XmlLibrary.GetSpriteFromContent(XmlLibrary.ObjectsXml[5], 0, 1)); spriteX += 130; _rangeClass = new Sprite(spriteX, 10, 120, 120, XmlLibrary.GetSpriteFromContent(XmlLibrary.ObjectsXml[6], 0, 1)); spriteX += 130; _defenseClass = new Sprite(spriteX, 10, 120, 120, XmlLibrary.GetSpriteFromContent(XmlLibrary.ObjectsXml[7], 0, 1)); _meleeClass.AddEventListener(Event.CLICKLEFT, delegate { CreateCharacter(5); ParentSprite.RemoveChild(this); }); _meleeClass.AddEventListener(Event.MOUSEOUT, delegate { _meleeClass.SpriteColor = Color.White; }); _meleeClass.AddEventListener(Event.MOUSEOVER, delegate { _meleeClass.SpriteColor = Color.DarkSlateGray; }); _rangeClass.AddEventListener(Event.CLICKLEFT, delegate { CreateCharacter(6); ParentSprite.RemoveChild(this); }); _rangeClass.AddEventListener(Event.MOUSEOUT, delegate { _rangeClass.SpriteColor = Color.White; }); _rangeClass.AddEventListener(Event.MOUSEOVER, delegate { _rangeClass.SpriteColor = Color.DarkSlateGray; }); _defenseClass.AddEventListener(Event.CLICKLEFT, delegate { CreateCharacter(7); ParentSprite.RemoveChild(this); }); _defenseClass.AddEventListener(Event.MOUSEOUT, delegate { _defenseClass.SpriteColor = Color.White; }); _defenseClass.AddEventListener(Event.MOUSEOVER, delegate { _defenseClass.SpriteColor = Color.DarkSlateGray; }); AddChild(_mask); AddChild(_meleeClass); AddChild(_rangeClass); AddChild(_defenseClass); }