Example #1
0
// Ajoute la tile aux coordonnées (dans la matrice de la map) inTileX/inTileY au bon endroit dans l'anneau
void anneauQGraphicsItem::insererTile(QGraphicsPixmapItem *inTile, int inTileX, int inTileY, int inTileOrigineX, int inTileOrigineY)
{
    // Calcule la position de la tile dans l'anneau
    int x=getTileColumn(inTileX, inTileOrigineX);
    int y=getTileLine(inTileY, inTileOrigineY);


    //qDebug() << "Tile inseree en:" << x << y;
    _data[y][x] =inTile;
}
Example #2
0
	void KOrthogonalMap::setTilesLayer(U32 TileID, U16 LayerIndex, const std::vector<KTileStamp> &Stamp, const KOrthoLayer &Layer) {
		auto anchRow = getTileRow(TileID);
		auto anchCol = getTileColumn(TileID);
		for (auto it = Stamp.begin(); it != Stamp.end(); ++it) {
			if ((anchRow + it->row) < _kheight && (anchCol + it->col) < _kwidth) {
				// calculate id
				auto id = ((anchRow + it->row) * _kwidth) + (anchCol + it->col);
				setTileLayer(id, LayerIndex, Layer);
			}
		}
	}
Example #3
0
void anneauQGraphicsItem::columnRemoved(int inColumnNum, int inTileOrigineX)
{
    // Récupère le numéro de la colonne dans l'affichage
    int x =getTileColumn(inColumnNum, inTileOrigineX);

    // On regarde si on a supprimé la première ou la dernière colonne
    // si oui on met à jour les pointeurs de début/fin de l'anneau
    /*if(_firstColumn ==x)
        ++_firstColumn;
    else if(_lastColumn ==x)
        --_firstColumn;
    else qDebug() << "anneauQGraphicsItem::columnRemoved() > Warning: Suppression suspecte d'une colonne non situee a une extremite.";*/
    // En principe, on ne supprimera que les colonnes situées tout à gauche ou tout à droite
}
Example #4
0
	void KOrthogonalMap::getTilesLayer(U32 TileID, U16 LayerIndex, const std::vector<KTileStamp> &Stamp, std::vector<KOrthoLayer> &Output) {
		Output.clear();
		auto anchRow = getTileRow(TileID);
		auto anchCol = getTileColumn(TileID);
		for (auto it = Stamp.begin(); it != Stamp.end(); ++it) {
			if ((anchRow + it->row) < _kheight && (anchCol + it->col) < _kwidth) {
				// calculate id
				auto id = ((anchRow + it->row) * _kwidth) + (anchCol + it->col);
				KOrthoLayer layer;
				if (getTileLayer(id, LayerIndex, layer)) {
					Output.push_back(layer);
				}
			}
		}
	}