def sceneMouseMovedEvent(self, event: QGraphicsSceneMouseEvent): if self.game is None: return mouse_position = Point(event.scenePos().x(), event.scenePos().y()) if self.state == QLiberationMapState.MOVING_UNIT: self.setCursor(Qt.PointingHandCursor) self.movement_line.setLine( QLineF(self.movement_line.line().p1(), event.scenePos()) ) if self.is_valid_ship_pos(mouse_position): self.movement_line.setPen(CONST.COLORS["green"]) else: self.movement_line.setPen(CONST.COLORS["red"]) mouse_world_pos = self._scene_to_dcs_coords(mouse_position) if DisplayOptions.navmeshes.blue_navmesh: self.highlight_mouse_navmesh( self.scene(), self.game.blue_navmesh, self._scene_to_dcs_coords(mouse_position), ) if DisplayOptions.path_debug.shortest_path: self.draw_shortest_path( self.scene(), self.game.blue_navmesh, mouse_world_pos, player=True ) if DisplayOptions.navmeshes.red_navmesh: self.highlight_mouse_navmesh( self.scene(), self.game.red_navmesh, mouse_world_pos ) debug_blue = DisplayOptions.path_debug_faction.blue if DisplayOptions.path_debug.shortest_path: self.draw_shortest_path( self.scene(), self.game.navmesh_for(player=debug_blue), mouse_world_pos, player=False, ) elif not DisplayOptions.path_debug.hide: if DisplayOptions.path_debug.barcap: task = FlightType.BARCAP elif DisplayOptions.path_debug.cas: task = FlightType.CAS elif DisplayOptions.path_debug.sweep: task = FlightType.SWEEP elif DisplayOptions.path_debug.strike: task = FlightType.STRIKE elif DisplayOptions.path_debug.tarcap: task = FlightType.TARCAP else: raise ValueError("Unexpected value for DisplayOptions.path_debug") self.draw_test_flight_plan( self.scene(), task, mouse_world_pos, player=debug_blue )
def sceneMouseMovedEvent(self, event: QGraphicsSceneMouseEvent): if self.state == QLiberationMapState.MOVING_UNIT: self.setCursor(Qt.PointingHandCursor) self.movement_line.setLine( QLineF(self.movement_line.line().p1(), event.scenePos())) pos = Point(event.scenePos().x(), event.scenePos().y()) if self.is_valid_ship_pos(pos): self.movement_line.setPen(CONST.COLORS["green"]) else: self.movement_line.setPen(CONST.COLORS["red"])
def sceneMousePressEvent(self, event: QGraphicsSceneMouseEvent): if self.state == QLiberationMapState.MOVING_UNIT: if event.buttons() == Qt.RightButton: pass elif event.buttons() == Qt.LeftButton: if self.selected_cp is not None: # Set movement position for the cp pos = event.scenePos() point = Point(int(pos.x()), int(pos.y())) proj = self._scene_to_dcs_coords(point) if self.is_valid_ship_pos(point): self.selected_cp.control_point.target_position = proj else: self.selected_cp.control_point.target_position = None GameUpdateSignal.get_instance().updateGame( self.game_model.game) else: return self.state = QLiberationMapState.NORMAL try: self.scene().removeItem(self.movement_line) except: pass self.selected_cp = None
def mouseMoveEvent(self, event: QGraphicsSceneMouseEvent): super(QGraphicsBlockItem, self).mouseMoveEvent(event) self.setPos(event.scenePos() - event.buttonDownPos(Qt.MouseButton.LeftButton)) self.c, self.cS = self.closestItem() imgPosibleConnectH = self.scene().imgPosibleConnectH imgPosibleConnectV = self.scene().imgPosibleConnectV if self.c is not None: if self.c.type is ConnectionType.TOP: imgPosibleConnectH.setPos(self.c.parent.pos()) imgPosibleConnectH.setVisible(True) imgPosibleConnectH.setZValue(1) elif self.c.type is ConnectionType.BOTTOM: imgPosibleConnectH.setPos(self.c.parent.pos() + QPointF(0, self.c.parent.pixmap().height() - 5)) imgPosibleConnectH.setVisible(True) imgPosibleConnectH.setZValue(1) elif self.c.type is ConnectionType.RIGHT: imgPosibleConnectV.setPos( self.c.parent.pos() + QPointF(self.c.parent.pixmap().width() - 5, 0) + QPointF(0, 5)) imgPosibleConnectV.setVisible(True) imgPosibleConnectV.setZValue(1) elif self.c.type is ConnectionType.LEFT: imgPosibleConnectV.setPos(self.c.parent.pos() + QPointF(0, 5)) imgPosibleConnectV.setVisible(True) imgPosibleConnectV.setZValue(1) elif self.c.type is ConnectionType.BOTTOMIN: imgPosibleConnectH.setPos(self.c.parent.pos() + QPointF(16, 38)) imgPosibleConnectH.setVisible(True) imgPosibleConnectH.setZValue(1) else: imgPosibleConnectH.setVisible(False) imgPosibleConnectV.setVisible(False)
def mouseMoveEvent(self, sceneMouseEvent: QGraphicsSceneMouseEvent): mousePoint = sceneMouseEvent.scenePos() mouseRow, mouseColumn = round(mousePoint.x()), round(mousePoint.y()) row, column = self.tetris.falling_tetrimino.row, self.tetris.falling_tetrimino.column if mouseColumn - column > 0: self.tetris.move_right() if mouseColumn - column < 0: self.tetris.move_left()
def mouseMoveEvent(self, sceneMouseEvent: QGraphicsSceneMouseEvent): mousePoint = sceneMouseEvent.scenePos() mouseRow, mouseColumn = round(mousePoint.x()), round( mousePoint.y()) row, column = self.tetris.falling_tetrimino.row, self.tetris.falling_tetrimino.column if mouseColumn - column > 0: self.tetris.move_right() if mouseColumn - column < 0: self.tetris.move_left()
def mousePressEvent(self, event: QGraphicsSceneMouseEvent): movingItem = self.itemAt(event.scenePos(), self.view.transform()) if movingItem is None and event.button() is Qt.MouseButton.RightButton: self.popMenu.exec_(event.screenPos()) if movingItem is not None and event.button( ) is Qt.MouseButton.LeftButton: self.oldPos = movingItem.pos() self.clearSelection() super(Scene, self).mousePressEvent(event)
def mouseMoveEvent(self, event: QGraphicsSceneMouseEvent): """Implementation. Handles mouse movement events in the editor. Dragging the mouse with a button pressed will place or remove all tiles passed over. """ editor = self._editor pos = event.scenePos() tilePos = editor.sceneToGrid(pos) item = editor.itemAt(pos, QTransform()) if tilePos != self.lastTilePos: self.lastTilePos = tilePos if editor.validGridPos(tilePos): if event.buttons() & Qt.LeftButton: return self.handleLeftButton(pos) elif event.buttons() & Qt.RightButton: return self.handleRightButton(pos)
def mouseMoveEvent(self, event: QGraphicsSceneMouseEvent): if event.buttons() and Qt.LeftButton: item = self.parentItem() dx = event.scenePos().x() - event.lastScenePos().x() dy = event.scenePos().y() - event.lastScenePos().y() if item.sourceNode or item.destNode: item.adjust() item.centerCp.setPoint(item.updateCenterPos()) item.textCp.setPos(item.textPos) item.weightCp.setPos(item.weightPos) self.scene().update() if self.__m_type == PointType.Center: item.moveBy(dx, dy) self.scene().update() elif self.__m_type == PointType.Edge: self.__m_point = self.mapToParent(event.pos()) #self.setPos(self.__m_point) item.setEdgeControlPoint(self.__m_point, self.__m_item_type) self.scene().update() elif self.__m_type == PointType.Special: self.__m_point = self.mapToParent(event.pos()) #self.setPos(self.__m_point) item.setSpecialControlPoint(self.__m_point, self.__m_item_type) if self.collidingItem(item): if self.itemType() == ItemType.DestType: item.setDestNode(self.collidingItem(item)) if self.itemType() == ItemType.SourceType: item.setSourceNode(self.collidingItem(item)) self.collidingItem(item).addBezierEdge( item, self.itemType()) self.scene().update() elif self.__m_type == PointType.Text: self.__m_point = self.mapToParent(event.pos()) self.setPos(self.__m_point) self.scene().update()