Exemple #1
0
 def removeTile(self, coords):
     # Метод удаления тайлов в текущих координатах
     currentLayer = self.scene().LAYERS[int(
         self.PROXY.LAYER)]  # Текущий слой
     pointToRemove = adjustToTilesize(
         coords, self.PROXY.SIZE)  # Корректируем координаты
     for y in range(0, self.PROXY.SIZE, self.BASESIZE):
         for x in range(0, self.PROXY.SIZE, self.BASESIZE):
             tile = currentLayer['{}:{}'.format(pointToRemove.x() + x,
                                                pointToRemove.y() + y)]
             if tile: currentLayer.remove(tile)
     self.futureScenes.clear()  # Очищаем контейнер будущих сцен
Exemple #2
0
 def placeTile(self, coords):
     # Метод размещает текущий активный тайл на текущей сцене в координатах coords
     if self.PROXY.TILE:  # Размещаем тайл только при наличии этого тайла в буфере
         newTiles = []
         currentLayer = self.scene().LAYERS[int(self.PROXY.LAYER)]
         for TILE in self.PROXY.TILE:
             pointToPlace = adjustToTilesize(
                 coords, self.PROXY.SIZE)  # Корректируем координаты
             curX = TILE.x() + pointToPlace.x()
             curY = TILE.y() + pointToPlace.y()
             oldTile = currentLayer['{}:{}'.format(int(curX), int(curY))]
             if oldTile:
                 if oldTile != TILE:
                     currentLayer.remove(oldTile)
                     newTiles.append(
                         TILE.duplicate(curX, curY, self.PROXY.LAYER))
             else:
                 newTiles.append(
                     TILE.duplicate(curX, curY, self.PROXY.LAYER))
         self.futureScenes.clear()  # Очищаем контейнер будущих сцен
         self.scene().placeTiles(newTiles)  # Передаем тайлы сцене
Exemple #3
0
 def refresh(self):
     # Метод обновления сцены
     # Обновляем положение рамки выбора тайла
     self.setSelectorPosition(adjustToTilesize(self.selectorCoords, self.PROXY.SIZE))
 def move(self, coords, size):
     # Метод перемещения курсора. Меняет позицию в зависимости переданных координат и текущего размера тайла
     self.setPos(adjustToTilesize(coords, size))
Exemple #5
0
 def getTilesInRect(self, coords):
     # Метод возвращает список тайлов, которые пересекаются с прямоугольником размером с текущий размер тайла
     correctedCoords = adjustToTilesize(coords, self.PROXY.SIZE)
     rectangleToUse = QRectF(QPointF(correctedCoords),
                             QSizeF(self.PROXY.SIZE, self.PROXY.SIZE))
     return self.scene().items(rectangleToUse)