本文整理汇总了C++中logic::CEntity类的典型用法代码示例。如果您正苦于以下问题:C++ CEntity类的具体用法?C++ CEntity怎么用?C++ CEntity使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CEntity类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: activateHealZone
void activateHealZone(unsigned int entityID)
{
Logic::CEntity *entity = Logic::CServer::getSingletonPtr()->getMap()->getEntityByID(entityID);
Logic::MActivateHealZone *m = new Logic::MActivateHealZone();
entity->emitMessage(m);
}
开发者ID:JOSE89,项目名称:DamnedSunset,代码行数:7,代码来源:LUA_MessageFunctions.cpp
示例2: disconnectionPacketReceived
void CGameServerState::disconnectionPacketReceived(Net::CPaquete* packet) {
// Obtenemos el puntero al gestor de jugadores y el id de red del cliente que se quiere desconectar
Net::NetID playerNetId = packet->getConexion()->getId();
// Eliminamos la entidad manejada por el cliente que se quiere desconectar.
// Para ello comprobamos si tiene asignado un id de entidad. Si no lo tiene, es que
// no ha sido creada ninguna entidad (podria estar conectandose).
if( _playersMgr->existsByNetId(playerNetId) ) {
std::pair<Logic::TEntityID, bool> logicIdPair = _playersMgr->getPlayerId(playerNetId);
if(logicIdPair.second) {
Logic::CEntity* entityToBeDeleted = _map->getEntityByID(logicIdPair.first);
Logic::CEntityFactory::getSingletonPtr()->deferredDeleteEntity(entityToBeDeleted, true);
// A nivel logico, conviene que los clientes sepan quien se desconecta,
// especialmente para eliminar cosas del hud
Net::NetMessageType ackMsg = Net::PLAYER_OFF_MATCH;
Net::CBuffer disconnectMsg;
disconnectMsg.write(&ackMsg, sizeof(ackMsg));
disconnectMsg.write(&playerNetId, sizeof(playerNetId));
disconnectMsg.serialize(entityToBeDeleted->getName(), false);
_netMgr->broadcast(disconnectMsg.getbuffer(), disconnectMsg.getSize());
}
// Eliminamos el jugador que se desconecta del manager de jugadores
_playersMgr->removePlayer(playerNetId);
}
} // disconnexionPacketReceived
开发者ID:franaisa,项目名称:Gloom,代码行数:28,代码来源:GameServerState.cpp
示例3: atacarJack
void atacarJack(unsigned int entityID)
{
Logic::CEntity * jack = Logic::CServer::getSingletonPtr()->getMap()->getEntityByID(entityID);
Logic::CEntity* * entidadesColision;
int numColisiones = Physics::CServer::getSingletonPtr()->detectCollisions(jack->getPosition(), 40, entidadesColision);
for(int i = 0; i < numColisiones; ++i)
{
if (!entidadesColision[i]->getTag().compare("enemy"))
{
//Entidad enemiga que atacará a Jack
Logic::CEntity * entidad = entidadesColision[i];
std::stringstream script;
script << "enemyEvent(\"AttackJack\", " << entidad->getEntityID() << ")";
ScriptManager::CServer::getSingletonPtr()->executeScript(script.str().c_str());
Logic::MAttackEntity *message = new Logic::MAttackEntity();
message->setAttack(true);
message->setEntity(jack);
entidad->emitMessage(message);
}
}
}
开发者ID:JOSE89,项目名称:DamnedSunset,代码行数:25,代码来源:LUA_MessageFunctions.cpp
示例4:
std::pair<CVolumetricLightScattering::ScatteringParams, bool> CVolumetricLightScattering::getClosestLightSource(const std::list<ScatteringParams>& lightList) {
std::pair<ScatteringParams, bool> closestLightSrc;
closestLightSrc.second = false;
// Obtenemos el puntero a la entidad del jugador que en este caso es lo que nos interesa
Logic::CEntity* player = Input::CServer::getSingletonPtr()->getPlayerController()->getControllerAvatar();
if(player != NULL) {
Vector3 playerPosition = player->getPosition();
Vector2 playerPos2d(playerPosition.x, playerPosition.z);
auto it = lightList.begin();
Vector2 pos2d(it->lightPosition.x, it->lightPosition.z);
auto closestLight = it++;
float closestDist = (playerPos2d - pos2d).length();
float dist;
for(; it != lightList.end(); ++it) {
pos2d.x = it->lightPosition.x;
pos2d.y = it->lightPosition.z;
dist = (playerPos2d - pos2d).length();
if(dist < closestDist) {
closestLight = it;
closestDist = dist;
}
}
closestLightSrc.second = true;
closestLightSrc.first = *closestLight;
}
return closestLightSrc;
}
开发者ID:franaisa,项目名称:Gloom,代码行数:33,代码来源:VolumetricLightScattering.cpp
示例5: process
void CSwordSlashController::process(const std::shared_ptr<Logic::IMessage> &message)
{
if((message->getType().compare("TOUCHED") == 0))
{
Logic::CEntity *otherEntity = dynamic_cast<TOUCHED*>(message.get())->getEntidad();
if(otherEntity)
{
if (otherEntity->getTag() == "enemy")
{
if(_damage>0)
{
std::shared_ptr<DAMAGED> m(new DAMAGED());
m->setFloat(_damage);
m->setString(_entity->getType());
otherEntity->emitMessage(m);
std::shared_ptr<PUSH> pushMessage(new PUSH());
pushMessage->setDirection(_direction);
pushMessage->setSpeed(0.5f);
otherEntity->emitMessage(pushMessage, this);
//BaseSubsystems::Log::Debug("ÑAPA: " + std::to_string(_damage));
}
Logic::CEntityFactory::getSingletonPtr()->createEntityByType("ChispaDanhoEnemy",
otherEntity->getCenterPosition(),
_entity->getMap());
}
}
}
} // process
开发者ID:albmarvil,项目名称:The-Eternal-Sorrow,代码行数:32,代码来源:SwordSlashController.cpp
示例6: dataPacketReceived
void CTDMClient::dataPacketReceived(Net::CPaquete* packet) {
CGameClientState::dataPacketReceived(packet);
// Introducimos los datos recibidos en un buffer
Net::CBuffer buffer( packet->getDataLength() );
buffer.write( packet->getData(), packet->getDataLength() );
buffer.reset();
// Obtenemos la cabecera del mensaje
Net::NetMessageType netMsgType;
buffer.read( &netMsgType, sizeof(netMsgType) );
// Dependiendo del tipo de mensaje
switch (netMsgType) {
case Net::END_GAME: {
_inEndGame = true;
// Desactivamos al jugador
Logic::CEntity* player = Input::CServer::getSingletonPtr()->getPlayerController()->getControllerAvatar();
set<string> exceptionList;
exceptionList.insert("CAnimationManager");
player->deactivateAllComponentsExcept(exceptionList);
// Fijamos la cámara en el exterior para que rote a nuestro
// alrededor
Logic::CScoreboard::getSingletonPtr()->activate();
break;
}
}
}
开发者ID:franaisa,项目名称:Gloom,代码行数:32,代码来源:TDMClient.cpp
示例7: IntantiateSoulAltar
void IntantiateSoulAltar(Vector3 posDest, Vector3 posInit, Logic::CMap *map)
{
Logic::CEntity *ent = Logic::CEntityFactory::getSingletonPtr()->createEntityByType("AltarFeedback", posInit, map);
Logic::CAltarFeedbackController *comp = (Logic::CAltarFeedbackController *) ent->getComponent("CAltarFeedbackController");
comp->Config(posDest);
}
开发者ID:albmarvil,项目名称:The-Eternal-Sorrow,代码行数:8,代码来源:FunctionsToLUA.cpp
示例8: empujarCircle
void empujarCircle(unsigned int entityID)
{
Logic::CEntity *entity = Logic::CServer::getSingletonPtr()->getMap()->getEntityByID(entityID);
Logic::MPushEntities *m = new Logic::MPushEntities();
entity->emitMessage(m);
}
开发者ID:JOSE89,项目名称:DamnedSunset,代码行数:8,代码来源:LUA_MessageFunctions.cpp
示例9: SendMinionCreated
void SendMinionCreated(Logic::CEntity* minionCreated, std::string leaderName)
{
Logic::CEntity* leader = Logic::CServer::getSingletonPtr()->getMap()->getEntityByName(leaderName);
std::shared_ptr<Logic::GET_LOGIC_ENTITY>m(new Logic::GET_LOGIC_ENTITY());
m->setEntity(minionCreated);
leader->emitMessage(m);
}
开发者ID:albmarvil,项目名称:The-Eternal-Sorrow,代码行数:8,代码来源:FunctionsToLUA.cpp
示例10: cancelCure
void cancelCure(unsigned int entityID)
{
Logic::CEntity *entity = Logic::CServer::getSingletonPtr()->getMap()->getEntityByID(entityID);
Logic::MCureEntity *m = new Logic::MCureEntity();
m->setCure(false);
entity->emitMessage(m);
}
开发者ID:JOSE89,项目名称:DamnedSunset,代码行数:9,代码来源:LUA_MessageFunctions.cpp
示例11: shakeCamera
void shakeCamera(Logic::CEntity *entity, float max, float min)
{
Logic::CEntity* cam = entity->getMap()->getEntityByType("Camera");
std::shared_ptr<Logic::SHAKE> m(new Logic::SHAKE());
m->setMaxShake(max);
m->setMinShake(min);
cam->emitMessage(m);
}
开发者ID:albmarvil,项目名称:The-Eternal-Sorrow,代码行数:9,代码来源:FunctionsToLUA.cpp
示例12: detenerEnemigosContraEnemigos
void detenerEnemigosContraEnemigos(unsigned int entityID)
{
//Mandamos un mensaje para que salga el icono de aturdido
Logic::MAturdido *message = new Logic::MAturdido();
message->setAturdido(false);
Logic::CEntity *entity = Logic::CServer::getSingletonPtr()->getMap()->getEntityByID(entityID);
if (entity)
entity->emitMessage(message);
}
开发者ID:JOSE89,项目名称:DamnedSunset,代码行数:9,代码来源:LUA_MessageFunctions.cpp
示例13: launchFlameThrower
void launchFlameThrower(unsigned int entityID, float point_x, float point_y, float point_z)
{
Logic::CEntity *entity = Logic::CServer::getSingletonPtr()->getMap()->getEntityByID(entityID);
Logic::MLanzarLlamas *m = new Logic::MLanzarLlamas();
m->setPosition(Vector2(point_x, point_z));
m->setOrdenLlamas(Logic::OrdenLlamas::lanzarLlamas);
entity->emitMessage(m);
}
开发者ID:JOSE89,项目名称:DamnedSunset,代码行数:10,代码来源:LUA_MessageFunctions.cpp
示例14: cancelFlameThrower
void cancelFlameThrower(unsigned int entityID)
{
Logic::CEntity *entity = Logic::CServer::getSingletonPtr()->getMap()->getEntityByID(entityID);
Logic::MLanzarLlamas *m = new Logic::MLanzarLlamas();
m->setPosition(Vector2(0, 0));
m->setOrdenLlamas(Logic::OrdenLlamas::ocultarBLamas);
entity->emitMessage(m);
}
开发者ID:JOSE89,项目名称:DamnedSunset,代码行数:10,代码来源:LUA_MessageFunctions.cpp
示例15: launchPowerShoot
void launchPowerShoot(unsigned int entityID, float point_x, float point_y, float point_z)
{
Logic::CEntity *entity = Logic::CServer::getSingletonPtr()->getMap()->getEntityByID(entityID);
Logic::MDisparosPotentes *m = new Logic::MDisparosPotentes();
m->setPosition(Vector2(point_x, point_z));
m->setOrdenDisparos(Logic::OrdenDisparos::disparar);
entity->emitMessage(m);
}
开发者ID:JOSE89,项目名称:DamnedSunset,代码行数:10,代码来源:LUA_MessageFunctions.cpp
示例16: cancelPowerShoot
void cancelPowerShoot(unsigned int entityID)
{
Logic::CEntity *entity = Logic::CServer::getSingletonPtr()->getMap()->getEntityByID(entityID);
Logic::MDisparosPotentes *m = new Logic::MDisparosPotentes();
m->setPosition(Vector2(0, 0));
m->setOrdenDisparos(Logic::OrdenDisparos::ocultarCono);
entity->emitMessage(m);
}
开发者ID:JOSE89,项目名称:DamnedSunset,代码行数:10,代码来源:LUA_MessageFunctions.cpp
示例17: createAndMirrorSpectator
void CGameServerState::createAndMirrorSpectator(Net::NetID playerNetId) {
// Primero comprobamos si habia una entidad correspondiente a este jugador
// ya que durante el juego tambien podemos cambiar de clase.
// En caso de que la haya la eliminamos para crear la nueva
std::pair<Logic::TEntityID, bool> id = _playersMgr->getPlayerId(playerNetId);
if(id.second) { // Si el id devuelto es valido
Logic::CEntity* deletePlayer = _map->getEntityByID( id.first );
if(deletePlayer) {
Logic::CEntityFactory::getSingletonPtr()->deleteEntity(deletePlayer, true);
}
}
// Obtenemos el nickname del jugador que quiere espectar
std::string nickname = _playersMgr->getPlayerNickname(playerNetId);
// Creamos la entidad espectador con el nombre del jugador
Logic::CEntity* spectator = _map->createPlayer(nickname, "Spectator");
// Obtenemos la id logica de la entidad espectador
Logic::TEntityID spectatorId = spectator->getEntityID();
// Seteamos la id logica del jugador en el gestor de jugadores
_playersMgr->setEntityID(playerNetId, spectatorId);
// Escribimos el tipo de mensaje de red a enviar
Net::NetMessageType netMsg = Net::LOAD_PLAYERS;
int nbPlayers = 1;
// Serializamos toda la información que se necesita para la creación de la entidad
Net::CBuffer buffer;
buffer.write(&netMsg, sizeof(netMsg));
buffer.write(&nbPlayers, sizeof(nbPlayers));
buffer.write(&playerNetId, sizeof(playerNetId));
buffer.write(&spectatorId, sizeof(spectatorId));
buffer.serialize(nickname, false); // Nombre del player
buffer.serialize("Spectator", false); // Clase del player
// Enviamos la entidad nueva al resto de jugadores
_netMgr->broadcastIgnoring(playerNetId, buffer.getbuffer(), buffer.getSize());
buffer.reset();
// Enviamos la entidad nueva al jugador local
netMsg = Net::LOAD_LOCAL_PLAYER;
// Serializamos toda la información que se necesita para la creación de la entidad
buffer.write(&netMsg, sizeof(netMsg));
buffer.write(&playerNetId, sizeof(playerNetId));
buffer.write(&spectatorId, sizeof(spectatorId));
buffer.serialize(nickname, false); // Nombre del player
buffer.serialize("Spectator", false); // Clase del player
spectator->activate();
spectator->start();
_netMgr->sendTo(playerNetId, buffer.getbuffer(), buffer.getSize());
_playersMgr->setPlayerState(playerNetId, false);
_playersMgr->setPlayerTeam(playerNetId, Logic::TeamFaction::eNONE);
}
开发者ID:franaisa,项目名称:Gloom,代码行数:55,代码来源:GameServerState.cpp
示例18: launchGrenade
void launchGrenade(unsigned int entityID, float point_x, float point_y, float point_z)
{
Logic::CEntity *entity = Logic::CServer::getSingletonPtr()->getMap()->getEntityByID(entityID);
Logic::MLanzarGranada *m = new Logic::MLanzarGranada();
//m->setPosition(Vector2(entity->getPosition().x, entity->getPosition().y));
m->setPosition(Vector2(point_x, point_z));
m->setOrdenGranada(Logic::OrdenGranada::lanzar);
entity->emitMessage(m);
}
开发者ID:JOSE89,项目名称:DamnedSunset,代码行数:11,代码来源:LUA_MessageFunctions.cpp
示例19: startCure
void startCure(unsigned int entityID, unsigned int entityIDTarget)
{
Logic::CEntity *entity = Logic::CServer::getSingletonPtr()->getMap()->getEntityByID(entityID);
Logic::CEntity *entityTarget = Logic::CServer::getSingletonPtr()->getMap()->getEntityByID(entityIDTarget);
Logic::MCureEntity *m = new Logic::MCureEntity();
m->setEntity(entityTarget);
m->setCure(true);
entity->emitMessage(m);
}
开发者ID:JOSE89,项目名称:DamnedSunset,代码行数:11,代码来源:LUA_MessageFunctions.cpp
示例20: damaged
void CCameraFeedbackNotifier::damaged(Vector3 vEnemyPosition) {
std::shared_ptr<Logic::CMessageCameraOffset> m3 = std::make_shared<Logic::CMessageCameraOffset>();
m3->setOffsetTimer(100.0f);//Timer
Logic::CEntity * camera = Logic::CServer::getSingletonPtr()->getMap()->getEntityByName("Camera");
assert(camera != NULL && "Error: Esto no se puede hacer asi que sois unos lamers, ahora el servidor que hace?");
camera->emitMessage(m3);
_scene->setCompositorVisible(_effect, true);
_effectIsActivated = true;
_timestamp = 0;
calculateEnemyPosition(vEnemyPosition);
}// damaged
开发者ID:franaisa,项目名称:Gloom,代码行数:13,代码来源:CameraFeedbackNotifier.cpp
注:本文中的logic::CEntity类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论