当前位置: 首页>>代码示例>>C++>>正文


C++ Tile::agregarEntidad方法代码示例

本文整理汇总了C++中Tile::agregarEntidad方法的典型用法代码示例。如果您正苦于以下问题:C++ Tile::agregarEntidad方法的具体用法?C++ Tile::agregarEntidad怎么用?C++ Tile::agregarEntidad使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Tile的用法示例。


在下文中一共展示了Tile::agregarEntidad方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: agregarEntidad

bool Escenario::agregarEntidad(Coordenada pos, Entidad* entidad){
	if (!coordEnEscenario(pos))
		throw FueraDeEscenario();
	try {
		pair<int,int> dim = entidad->getTam();
		// Se fija que todos los tiles a ocupar estén vacíos antes de ocuparlos
		for (int j = 0; j < dim.second; j++)
			for (int i = 0; i < dim.first; i++){
				Tile* tile = this->matriz_tiles[pos.x+i][pos.y+j];
				if (!tile->estaLibre())
					throw TileEstaOcupado();
			}
		for (int j = 0; j < dim.second; j++){
			for (int i = 0; i < dim.first; i++){
				Tile* tile = this->matriz_tiles[pos.x+i][pos.y+j];
				if (i==round(dim.first/2.0)-1 && j==round(dim.second/2.0)-1)
					tile->agregarEntidad(entidad, true);
				else tile->agregarEntidad(entidad);
			}
		}
		// Se guardan en posicionesEntidades todas las entidades agregadas al mapa. No se lo limpia TODO
		posicionesEntidades->push_back(entidad);
	} catch ( TileEstaOcupado &e ) {
		Log::imprimirALog(ERR,"Se intentó agregar una entidad en un tile ocupado "+entidad->enc());
		return false;
	}
	return true;
}
开发者ID:PabloFederico,项目名称:Taller-2015,代码行数:28,代码来源:Escenario.cpp

示例2: actualizarPosicionParaEntidad

void Escenario::actualizarPosicionParaEntidad(Coordenada c, Entidad* entidad){
	/* Si las coordenadas no son iguales, actualizar la coordenada de cualquier entidad */
	if (entidad->getPosicion() != c) {
		Tile* tile = getTile(entidad->getPosicion());
		try {
			if (tile != NULL)
				tile->eliminarEntidad(entidad);
		} catch ( NoSeRecibio &e ) { Log::imprimirALog(ERR, "No se encontró entidad en posición buscada, se creó una repetida?"); }

		/* agregamos la entidad a su nuevo tile */
		tile = getTile(c.x, c.y);
		if (tile != NULL)
			tile->agregarEntidad(entidad);
		entidad->setPosicion(c);
	}
}
开发者ID:PabloFederico,项目名称:Taller-2015,代码行数:16,代码来源:Escenario.cpp


注:本文中的Tile::agregarEntidad方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。