public void Visit(BasicFigure f) { Vector2 mouse = GetMousePosition(); Rectangle rec = new Rectangle(f.posX, f.posY, f.width, f.height); if (CheckCollisionPointRec (mouse, new Rectangle(rec.x + rec.width - Global.MOUSE_SCALE_MARK_SIZE, rec.y + rec.height - Global.MOUSE_SCALE_MARK_SIZE, Global.MOUSE_SCALE_MARK_SIZE, Global.MOUSE_SCALE_MARK_SIZE))) { f.mouseScaleReady = true; if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) { f.mouseScaleMode = true; f.OldWidth = f.width; f.OldHeight = f.height; } } else { f.mouseScaleReady = false; } if (f.mouseScaleMode) { f.mouseScaleReady = true; f.width = mouse.X - f.posX; f.height = mouse.Y - f.posY; if (f.width < Global.MOUSE_SCALE_MARK_SIZE) { f.width = Global.MOUSE_SCALE_MARK_SIZE; } if (f.height < Global.MOUSE_SCALE_MARK_SIZE) { f.height = Global.MOUSE_SCALE_MARK_SIZE; } if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) { f.mouseScaleMode = false; canvasManager.Do(new Commands.ResizeFigure(f.OldWidth, f.OldHeight, f.width, f.height, f)); } } }
public void Visit(BasicFigure f) { if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && f.Collide(GetMousePosition()) ) { f.OldX = f.posX; f.OldY = f.posY; f.mouseMoveMode = true; } if (f.mouseMoveMode) { f.posX += (GetMousePosition().X - f.mousePositionLastFrame.X); f.posY += (GetMousePosition().Y - f.mousePositionLastFrame.Y); } if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON) && f.mouseMoveMode == true) { canvasManager.Do(new MoveFigure(f.OldX, f.OldY, f.posX, f.posY, f)); f.mouseMoveMode = false; } f.mousePositionLastFrame = GetMousePosition(); }