Fixed SpriteSheet display in SpriteMapEditor, no longer offset incorrectly.
This commit is contained in:
Generated
+28
-28
@@ -60,6 +60,7 @@
|
|||||||
this.loadMapDialog = new System.Windows.Forms.OpenFileDialog();
|
this.loadMapDialog = new System.Windows.Forms.OpenFileDialog();
|
||||||
this.saveMapDialog = new System.Windows.Forms.SaveFileDialog();
|
this.saveMapDialog = new System.Windows.Forms.SaveFileDialog();
|
||||||
this.spriteViewerPanel = new System.Windows.Forms.Panel();
|
this.spriteViewerPanel = new System.Windows.Forms.Panel();
|
||||||
|
this.spriteSheetViewer = new SpriteMapEditor.PictureBoxWithInterpolationMode();
|
||||||
this.zoomInButton = new System.Windows.Forms.Button();
|
this.zoomInButton = new System.Windows.Forms.Button();
|
||||||
this.zoomOutButton = new System.Windows.Forms.Button();
|
this.zoomOutButton = new System.Windows.Forms.Button();
|
||||||
this.zoomLabel = new System.Windows.Forms.Label();
|
this.zoomLabel = new System.Windows.Forms.Label();
|
||||||
@@ -71,6 +72,7 @@
|
|||||||
this.saveProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.saveProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.saveProjectAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.saveProjectAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.importSpriteSheetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.importSpriteMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.importSpriteMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.exportSpriteMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.exportSpriteMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
@@ -81,8 +83,6 @@
|
|||||||
this.viewEditPanel = new System.Windows.Forms.Panel();
|
this.viewEditPanel = new System.Windows.Forms.Panel();
|
||||||
this.saveProjectDialog = new System.Windows.Forms.SaveFileDialog();
|
this.saveProjectDialog = new System.Windows.Forms.SaveFileDialog();
|
||||||
this.openProjectDialog = new System.Windows.Forms.OpenFileDialog();
|
this.openProjectDialog = new System.Windows.Forms.OpenFileDialog();
|
||||||
this.importSpriteSheetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.spriteSheetViewer = new SpriteMapEditor.PictureBoxWithInterpolationMode();
|
|
||||||
this.spriteListEditPanel.SuspendLayout();
|
this.spriteListEditPanel.SuspendLayout();
|
||||||
this.spriteEditPanel.SuspendLayout();
|
this.spriteEditPanel.SuspendLayout();
|
||||||
this.originEditPanel.SuspendLayout();
|
this.originEditPanel.SuspendLayout();
|
||||||
@@ -93,9 +93,9 @@
|
|||||||
((System.ComponentModel.ISupportInitialize)(this.spriteYPosBox)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.spriteYPosBox)).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.spriteXPosBox)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.spriteXPosBox)).BeginInit();
|
||||||
this.spriteViewerPanel.SuspendLayout();
|
this.spriteViewerPanel.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.spriteSheetViewer)).BeginInit();
|
||||||
this.menuStrip1.SuspendLayout();
|
this.menuStrip1.SuspendLayout();
|
||||||
this.viewEditPanel.SuspendLayout();
|
this.viewEditPanel.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.spriteSheetViewer)).BeginInit();
|
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// spriteList
|
// spriteList
|
||||||
@@ -456,6 +456,23 @@
|
|||||||
this.spriteViewerPanel.TabIndex = 14;
|
this.spriteViewerPanel.TabIndex = 14;
|
||||||
this.spriteViewerPanel.Scroll += new System.Windows.Forms.ScrollEventHandler(this.spriteViewerPanel_Scroll);
|
this.spriteViewerPanel.Scroll += new System.Windows.Forms.ScrollEventHandler(this.spriteViewerPanel_Scroll);
|
||||||
//
|
//
|
||||||
|
// spriteSheetViewer
|
||||||
|
//
|
||||||
|
this.spriteSheetViewer.BackgroundImage = global::SpriteMapEditor.Properties.Resources.transparentUI;
|
||||||
|
this.spriteSheetViewer.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
|
||||||
|
this.spriteSheetViewer.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.spriteSheetViewer.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.spriteSheetViewer.Name = "spriteSheetViewer";
|
||||||
|
this.spriteSheetViewer.Size = new System.Drawing.Size(147, 143);
|
||||||
|
this.spriteSheetViewer.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||||
|
this.spriteSheetViewer.TabIndex = 13;
|
||||||
|
this.spriteSheetViewer.TabStop = false;
|
||||||
|
this.spriteSheetViewer.Paint += new System.Windows.Forms.PaintEventHandler(this.spriteSheetViewer_Paint);
|
||||||
|
this.spriteSheetViewer.MouseDown += new System.Windows.Forms.MouseEventHandler(this.spriteSheetViewer_MouseDown);
|
||||||
|
this.spriteSheetViewer.MouseLeave += new System.EventHandler(this.spriteSheetViewer_MouseLeave);
|
||||||
|
this.spriteSheetViewer.MouseMove += new System.Windows.Forms.MouseEventHandler(this.spriteSheetViewer_MouseMove);
|
||||||
|
this.spriteSheetViewer.MouseUp += new System.Windows.Forms.MouseEventHandler(this.spriteSheetViewer_MouseUp);
|
||||||
|
//
|
||||||
// zoomInButton
|
// zoomInButton
|
||||||
//
|
//
|
||||||
this.zoomInButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
this.zoomInButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
@@ -555,6 +572,13 @@
|
|||||||
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
|
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
|
||||||
this.toolStripMenuItem2.Size = new System.Drawing.Size(181, 6);
|
this.toolStripMenuItem2.Size = new System.Drawing.Size(181, 6);
|
||||||
//
|
//
|
||||||
|
// importSpriteSheetToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.importSpriteSheetToolStripMenuItem.Name = "importSpriteSheetToolStripMenuItem";
|
||||||
|
this.importSpriteSheetToolStripMenuItem.Size = new System.Drawing.Size(184, 22);
|
||||||
|
this.importSpriteSheetToolStripMenuItem.Text = "Import Sprite Sheet...";
|
||||||
|
this.importSpriteSheetToolStripMenuItem.Click += new System.EventHandler(this.importSpriteSheetToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
// importSpriteMapToolStripMenuItem
|
// importSpriteMapToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.importSpriteMapToolStripMenuItem.Enabled = false;
|
this.importSpriteMapToolStripMenuItem.Enabled = false;
|
||||||
@@ -641,30 +665,6 @@
|
|||||||
this.openProjectDialog.Filter = "QUROGames Sprite Map Editor Project|*.smappr";
|
this.openProjectDialog.Filter = "QUROGames Sprite Map Editor Project|*.smappr";
|
||||||
this.openProjectDialog.Title = "Open Project";
|
this.openProjectDialog.Title = "Open Project";
|
||||||
//
|
//
|
||||||
// importSpriteSheetToolStripMenuItem
|
|
||||||
//
|
|
||||||
this.importSpriteSheetToolStripMenuItem.Name = "importSpriteSheetToolStripMenuItem";
|
|
||||||
this.importSpriteSheetToolStripMenuItem.Size = new System.Drawing.Size(184, 22);
|
|
||||||
this.importSpriteSheetToolStripMenuItem.Text = "Import Sprite Sheet...";
|
|
||||||
this.importSpriteSheetToolStripMenuItem.Click += new System.EventHandler(this.importSpriteSheetToolStripMenuItem_Click);
|
|
||||||
//
|
|
||||||
// spriteSheetViewer
|
|
||||||
//
|
|
||||||
this.spriteSheetViewer.BackgroundImage = global::SpriteMapEditor.Properties.Resources.transparentUI;
|
|
||||||
this.spriteSheetViewer.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
|
|
||||||
this.spriteSheetViewer.Location = new System.Drawing.Point(0, 0);
|
|
||||||
this.spriteSheetViewer.Margin = new System.Windows.Forms.Padding(0);
|
|
||||||
this.spriteSheetViewer.Name = "spriteSheetViewer";
|
|
||||||
this.spriteSheetViewer.Size = new System.Drawing.Size(147, 143);
|
|
||||||
this.spriteSheetViewer.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
|
||||||
this.spriteSheetViewer.TabIndex = 13;
|
|
||||||
this.spriteSheetViewer.TabStop = false;
|
|
||||||
this.spriteSheetViewer.Paint += new System.Windows.Forms.PaintEventHandler(this.spriteSheetViewer_Paint);
|
|
||||||
this.spriteSheetViewer.MouseDown += new System.Windows.Forms.MouseEventHandler(this.spriteSheetViewer_MouseDown);
|
|
||||||
this.spriteSheetViewer.MouseLeave += new System.EventHandler(this.spriteSheetViewer_MouseLeave);
|
|
||||||
this.spriteSheetViewer.MouseMove += new System.Windows.Forms.MouseEventHandler(this.spriteSheetViewer_MouseMove);
|
|
||||||
this.spriteSheetViewer.MouseUp += new System.Windows.Forms.MouseEventHandler(this.spriteSheetViewer_MouseUp);
|
|
||||||
//
|
|
||||||
// Form1
|
// Form1
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
@@ -695,11 +695,11 @@
|
|||||||
((System.ComponentModel.ISupportInitialize)(this.spriteYPosBox)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.spriteYPosBox)).EndInit();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.spriteXPosBox)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.spriteXPosBox)).EndInit();
|
||||||
this.spriteViewerPanel.ResumeLayout(false);
|
this.spriteViewerPanel.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.spriteSheetViewer)).EndInit();
|
||||||
this.menuStrip1.ResumeLayout(false);
|
this.menuStrip1.ResumeLayout(false);
|
||||||
this.menuStrip1.PerformLayout();
|
this.menuStrip1.PerformLayout();
|
||||||
this.viewEditPanel.ResumeLayout(false);
|
this.viewEditPanel.ResumeLayout(false);
|
||||||
this.viewEditPanel.PerformLayout();
|
this.viewEditPanel.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.spriteSheetViewer)).EndInit();
|
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
||||||
|
|||||||
+17
-22
@@ -84,17 +84,6 @@ namespace SpriteMapEditor
|
|||||||
|
|
||||||
private List<Microsoft.Xna.Framework.Rectangle> preDragBounds;
|
private List<Microsoft.Xna.Framework.Rectangle> preDragBounds;
|
||||||
|
|
||||||
private int drawingRectangleOffset
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (zoomLevel > 2)
|
|
||||||
return (zoomLevel - 1) / 2;
|
|
||||||
else
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public Form1()
|
public Form1()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
@@ -298,10 +287,8 @@ namespace SpriteMapEditor
|
|||||||
private Rectangle GetDrawingRect(Microsoft.Xna.Framework.Rectangle baseRect, bool outline = true)
|
private Rectangle GetDrawingRect(Microsoft.Xna.Framework.Rectangle baseRect, bool outline = true)
|
||||||
{
|
{
|
||||||
var drawingRect = new Rectangle(baseRect.X, baseRect.Y, baseRect.Width, baseRect.Height);
|
var drawingRect = new Rectangle(baseRect.X, baseRect.Y, baseRect.Width, baseRect.Height);
|
||||||
drawingRect.X = drawingRect.X * zoomLevel - (zoomLevel - 1);
|
drawingRect.X = drawingRect.X * zoomLevel + 1;
|
||||||
drawingRect.Y = drawingRect.Y * zoomLevel - (zoomLevel - 1);
|
drawingRect.Y = drawingRect.Y * zoomLevel + 1;
|
||||||
drawingRect.X += drawingRectangleOffset;
|
|
||||||
drawingRect.Y += drawingRectangleOffset;
|
|
||||||
drawingRect.Width *= zoomLevel;
|
drawingRect.Width *= zoomLevel;
|
||||||
drawingRect.Height *= zoomLevel;
|
drawingRect.Height *= zoomLevel;
|
||||||
|
|
||||||
@@ -314,10 +301,8 @@ namespace SpriteMapEditor
|
|||||||
private Point GetOriginDrawingPoint(SpriteMapRegion sprite)
|
private Point GetOriginDrawingPoint(SpriteMapRegion sprite)
|
||||||
{
|
{
|
||||||
var drawingPoint = new Point(sprite.Bounds.X, sprite.Bounds.Y);
|
var drawingPoint = new Point(sprite.Bounds.X, sprite.Bounds.Y);
|
||||||
drawingPoint.X = drawingPoint.X * zoomLevel - (zoomLevel - 1);
|
drawingPoint.X = drawingPoint.X * zoomLevel;
|
||||||
drawingPoint.Y = drawingPoint.Y * zoomLevel - (zoomLevel - 1);
|
drawingPoint.Y = drawingPoint.Y * zoomLevel;
|
||||||
drawingPoint.X += drawingRectangleOffset;
|
|
||||||
drawingPoint.Y += drawingRectangleOffset;
|
|
||||||
drawingPoint.X += (int)sprite.Origin.X * zoomLevel;
|
drawingPoint.X += (int)sprite.Origin.X * zoomLevel;
|
||||||
drawingPoint.Y += (int)sprite.Origin.Y * zoomLevel;
|
drawingPoint.Y += (int)sprite.Origin.Y * zoomLevel;
|
||||||
return drawingPoint;
|
return drawingPoint;
|
||||||
@@ -352,11 +337,21 @@ namespace SpriteMapEditor
|
|||||||
InitializeMask();
|
InitializeMask();
|
||||||
foreach (SpriteMapRegion currentSprite in selectedSprites)
|
foreach (SpriteMapRegion currentSprite in selectedSprites)
|
||||||
{
|
{
|
||||||
for (int currentY = 0; currentY < currentSprite.Bounds.Height; currentY++)
|
var highlightRect = currentSprite.Bounds;
|
||||||
|
|
||||||
|
//make sure highlight mask update doesn't attempt to write to pixels that are out of bounds
|
||||||
|
var oobX = highlightRect.X + highlightRect.Width - spriteSheet.Width;
|
||||||
|
var oobY = highlightRect.Y + highlightRect.Height - spriteSheet.Height;
|
||||||
|
if (oobX > 0)
|
||||||
|
highlightRect.Width -= oobX;
|
||||||
|
if (oobY > 0)
|
||||||
|
highlightRect.Height -= oobY;
|
||||||
|
|
||||||
|
for (int currentY = 0; currentY < highlightRect.Height; currentY++)
|
||||||
{
|
{
|
||||||
for (int currentX = 0; currentX < currentSprite.Bounds.Width; currentX++)
|
for (int currentX = 0; currentX < highlightRect.Width; currentX++)
|
||||||
{
|
{
|
||||||
highlightMask.SetPixel(currentX + currentSprite.Bounds.X, currentY + currentSprite.Bounds.Y, Color.Transparent);
|
highlightMask.SetPixel(currentX + highlightRect.X, currentY + highlightRect.Y, Color.Transparent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ namespace SpriteMapEditor
|
|||||||
protected override void OnPaint(PaintEventArgs paintEventArgs)
|
protected override void OnPaint(PaintEventArgs paintEventArgs)
|
||||||
{
|
{
|
||||||
paintEventArgs.Graphics.InterpolationMode = InterpolationMode;
|
paintEventArgs.Graphics.InterpolationMode = InterpolationMode;
|
||||||
|
paintEventArgs.Graphics.PixelOffsetMode = PixelOffsetMode.Half;
|
||||||
base.OnPaint(paintEventArgs);
|
base.OnPaint(paintEventArgs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user