Beispiel #1
0
        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);
        }
Beispiel #2
0
        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}");
            }
        }
Beispiel #3
0
        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);
        }