def mouseMoveEvent(self, event): TiledCanvas.mouseMoveEvent(self, event) if self.on_click == self.put_current_tile: if self.mouse_button_down: self.on_click(event) else: if self.on_click == self.place_selected_entity and self.selected_entity: self.selected_entity.place(event.pos().x(), event.pos().y()) return entities = self.scene.items(self.mapToScene(event.pos().x(), event.pos().y())) for entity in entities: if self.selected_entity == entity: return if isinstance(entity, Map.Entity): self.selected_entity = entity rect = entity.boundingRect() rect.moveTo(entity.pos()) self.hover_cursor.setRect(rect) self.hover_cursor.setVisible(True) return self.hover_cursor.setVisible(False) self.selected_entity = None
def __init__(self, tileset, tileset_path): TiledCanvas.__init__(self) self.tileset = tileset self.set_tileset_image(tileset_path) self.setFocusPolicy(Qt.NoFocus) self.width = 0 # nombre de zones en largeur self.height = 0 # nombre de zones en hauteur self.zones = [] self.history = [] self.tiles = [] # widget is disabled untill a map is loaded self.setEnabled(False) self.set_cursor_visible(False) self.tiles_builded = False self.filename = None # on click callback method self.on_click = self.put_current_tile self.mouse_button_down = False self.selected_entity = None # pour les déplacements et les suppressions self.entities = [] self.resize(Zone.WIDTH, Zone.HEIGHT) self.grid = [] # contains the grid lines (QGraphicsLineItem) # hover cursor rect = QRectF(0, 0, self.TILESIZE, self.TILESIZE) pen = QPen(Qt.blue, 1, Qt.SolidLine) brush = QBrush(QColor.fromRgb(0, 0, 255, 64)) self.hover_cursor = self.scene.addRect(rect, pen, brush) self.hover_cursor.setVisible(False) self.hover_cursor.setZValue(Map.Z_UNIT + 1)
def mousePressEvent(self, event): TiledCanvas.mousePressEvent(self, event) self.info.set_current_tile(self.get_tile_id())
def mousePressEvent(self, event): TiledCanvas.mousePressEvent(self, event) if event.button() == Qt.LeftButton: self.mouse_button_down = True self.on_click(event)
def __init__(self, tileset_path, frameinfo): TiledCanvas.__init__(self) self.set_tileset_image(tileset_path) self.info = frameinfo