private void OnButtonPressed(object sender, MouseButtonEventArgs msg) { if (msg.Button == MouseButton.Left) { IsLeftMouseButtonPress = true; if (DispatchPressed(msg.Current.Position.X, msg.Current.Position.Y)) { return; } Point p = CozyTiledPositionHelper.ConvertPositionToTiledPosition(CurrentPosition.ToVector2(), NodeContentSize); if (Status == S_Add) { if (Judge(p)) { TempTiles[p] = CurrentTiledId; } } else if (Status == S_Remove) { RemoveTiled(p); } } else if (msg.Button == MouseButton.Right) { if (CommandHistory.Instance.CanUndo()) { TiledCommandUndo(this, null); } } }
private void OnMouseMoved(object sender, MouseEventArgs msg) { CurrentPosition = msg.Current.Position; if (IsLeftMouseButtonPress) { if (DispatchMoved(msg.Current.Position.X, msg.Current.Position.Y)) { return; } Point p = CozyTiledPositionHelper.ConvertPositionToTiledPosition(CurrentPosition.ToVector2(), NodeContentSize); if (Judge(p)) { if (Status == S_Add) { TempTiles[p] = CurrentTiledId; } else if (Status == S_Remove) { RemoveTiled(p); } } } }
protected override void DrawSelf(Microsoft.Xna.Framework.GameTime gameTime, Microsoft.Xna.Framework.Graphics.SpriteBatch spriteBatch) { spriteBatch.End(); foreach (var obj in DrawableUIElemts) { foreach (Control elemt in obj.GetDrawableElemt()) { renderer.Render(elemt, spriteBatch); } } spriteBatch.Begin(); if (Status == S_Add) { CozyTiledFactory.GetInstance(CurrentTiledId).DrawAt(gameTime, spriteBatch, CurrentPosition.ToVector2(), NodeContentSize); } foreach (var obj in TempTiles) { var ActualPosition = CozyTiledPositionHelper.ConvertTiledPositionToPosition(obj.Key, NodeContentSize); CozyTiledFactory.GetInstance(obj.Value).DrawAt(gameTime, spriteBatch, ActualPosition, NodeContentSize); } }