private void DrawCharacter(Character character, RoomEditorState state) { AgsView view = _game.FindViewByID(character.NormalView); if (view != null && view.Loops.Count > 0) { int spriteNum = 0; //this is a check to make certain that loop 0 frame 0 of the character normalview has an image; //if not, it defaults to using spriteNum 0 if (view.Loops[0].Frames.Count > 0) { ViewFrame thisFrame = view.Loops[0].Frames[0]; spriteNum = thisFrame.Image; } int xPos = state.RoomXToWindow(character.StartX); int yPos = state.RoomYToWindow(character.StartY); int spriteWidth, spriteHeight; Utilities.GetSizeSpriteWillBeRenderedInGame(spriteNum, out spriteWidth, out spriteHeight); spriteWidth = state.RoomSizeToWindow(spriteWidth); spriteHeight = state.RoomSizeToWindow(spriteHeight); Factory.NativeProxy.DrawSpriteToBuffer(spriteNum, xPos - spriteWidth / 2, yPos - spriteHeight, state.Scale); } }
public virtual void Paint(Graphics graphics, RoomEditorState state) { int xPos; int yPos; if (_selectedObject == null) { return; } DesignTimeProperties design = DesignItems[GetItemID(_selectedObject)]; if (!design.Visible) { return; } int width, height; Utilities.GetSizeSpriteWillBeRenderedInGame(_selectedObject.Image, out width, out height); width = state.RoomSizeToWindow(width); height = state.RoomSizeToWindow(height); xPos = state.RoomXToWindow(_selectedObject.StartX); yPos = state.RoomYToWindow(_selectedObject.StartY) - height; Pen pen = new Pen(Color.Goldenrod); pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot; graphics.DrawRectangle(pen, xPos, yPos, width, height); if (_movingObjectWithMouse) { System.Drawing.Font font = new System.Drawing.Font("Arial", 10.0f); string toDraw = String.Format("X:{0}, Y:{1}", _selectedObject.StartX, _selectedObject.StartY); int scaledx = xPos + (width / 2) - ((int)graphics.MeasureString(toDraw, font).Width / 2); int scaledy = yPos - (int)graphics.MeasureString(toDraw, font).Height; if (scaledx < 0) { scaledx = 0; } if (scaledy < 0) { scaledy = 0; } graphics.DrawString(toDraw, font, pen.Brush, (float)scaledx, (float)scaledy); } else if (design.Locked) { pen = new Pen(Color.Goldenrod, 2); xPos = state.RoomXToWindow(_selectedObject.StartX) + (width / 2); yPos = state.RoomYToWindow(_selectedObject.StartY) - (height / 2); Point center = new Point(xPos, yPos); graphics.DrawLine(pen, center.X - 3, center.Y - 3, center.X + 3, center.Y + 3); graphics.DrawLine(pen, center.X - 3, center.Y + 3, center.X + 3, center.Y - 3); } }
/// <summary> /// Draw hint overlay. /// NOTE: this is NOT drawing on actual mask, which is performed when /// user releases mouse button. /// </summary> public virtual void Paint(Graphics graphics, RoomEditorState state) { int roomPixel = state.RoomSizeToWindow(1); int halfRoomPixel = roomPixel / 2; if ((_mouseDown) && (_drawMode == AreaDrawMode.Line)) { int penWidth = (int)(roomPixel * GetHintScaleFactor(state)); Pen pen = GetPenForArea(_drawingWithArea); pen = new Pen(pen.Color, penWidth); graphics.DrawLine(pen, state.RoomXToWindow(_mouseDownX) + halfRoomPixel, state.RoomYToWindow(_mouseDownY) + halfRoomPixel, state.RoomXToWindow(_currentMouseX) + halfRoomPixel, state.RoomYToWindow(_currentMouseY) + halfRoomPixel); pen.Dispose(); } else if ((_mouseDown) && (_drawMode == AreaDrawMode.Rectangle)) { int x1 = state.RoomXToWindow(_mouseDownX); int y1 = state.RoomYToWindow(_mouseDownY); int x2 = state.RoomXToWindow(_currentMouseX); int y2 = state.RoomYToWindow(_currentMouseY); EnsureSmallestNumberIsFirst(ref x1, ref x2); EnsureSmallestNumberIsFirst(ref y1, ref y2); graphics.FillRectangle(GetBrushForArea(_drawingWithArea), x1, y1, x2 - x1 + roomPixel, y2 - y1 + roomPixel); } }
private Rectangle GetCharacterRect(Character character, RoomEditorState state) { AgsView view = _game.FindViewByID(character.NormalView); int xPos = state.RoomXToWindow(character.StartX); int yPos = state.RoomYToWindow(character.StartY); if (view == null || view.Loops.Count == 0) { return(new Rectangle(xPos - 5, yPos - 5, 10, 10)); } int spriteNum = 0; if (view.Loops[0].Frames.Count > 0) { spriteNum = _game.FindViewByID(character.NormalView).Loops[0].Frames[0].Image; } int spriteWidth = state.RoomSizeToWindow(GetSpriteWidthForGameResolution(spriteNum)); int spriteHeight = state.RoomSizeToWindow(GetSpriteHeightForGameResolution(spriteNum)); return(new Rectangle(xPos - spriteWidth / 2, yPos - spriteHeight, spriteWidth, spriteHeight)); }
private void UpdateScrollableWindowSize() { bufferedPanel1.AutoScrollMinSize = new Size(_state.RoomSizeToWindow(_room.Width), _state.RoomSizeToWindow(_room.Height)); }
private void UpdateScrollableWindowSize() { bufferedPanel1.AutoScroll = true; lblDummyScrollSizer.Location = new Point(_state.RoomSizeToWindow(_room.Width), _state.RoomSizeToWindow(_room.Height)); }