这篇教程C++ BecomeActive函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中BecomeActive函数的典型用法代码示例。如果您正苦于以下问题:C++ BecomeActive函数的具体用法?C++ BecomeActive怎么用?C++ BecomeActive使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了BecomeActive函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: RemoveShard/*================idBrittleFracture::Think================*/void idBrittleFracture::Think( void ) { int i, startTime, endTime, droppedTime; shard_t *shard; bool atRest = true, fading = false; // remove overdue shards for( i = 0; i < shards.Num(); i++ ) { droppedTime = shards[i]->droppedTime; if( droppedTime != -1 ) { if( gameLocal.time - droppedTime > SHARD_ALIVE_TIME ) { RemoveShard( i ); i--; } fading = true; } } // remove the entity when nothing is visible if( !shards.Num() ) { PostEventMS( &EV_Remove, 0 ); return; } if( thinkFlags & TH_PHYSICS ) { startTime = gameLocal.previousTime; endTime = gameLocal.time; // run physics on shards for( i = 0; i < shards.Num(); i++ ) { shard = shards[i]; if( shard->droppedTime == -1 ) { continue; } shard->physicsObj.Evaluate( endTime - startTime, endTime ); if( !shard->physicsObj.IsAtRest() ) { atRest = false; } } if( atRest ) { BecomeInactive( TH_PHYSICS ); } else { BecomeActive( TH_PHYSICS ); } } if( !atRest || bounds.IsCleared() ) { bounds.Clear(); for( i = 0; i < shards.Num(); i++ ) { bounds.AddBounds( shards[i]->clipModel->GetAbsBounds() ); } } if( fading ) { BecomeActive( TH_UPDATEVISUALS | TH_THINK ); } else { BecomeInactive( TH_THINK ); } RunPhysics(); Present();}
开发者ID:SL987654,项目名称:The-Darkmod-Experimental,代码行数:59,
示例2: InitCollisionInfoEND_CLASS/*=================hhProjectileCrawlerGrenade::Spawn=================*/void hhProjectileCrawlerGrenade::Spawn() { modelScale.Init( gameLocal.time, 0, 1.0f, 1.0f ); modelProxy = NULL; InitCollisionInfo(); //doesn't matter for single player, only for network logic -rww modelProxyCopyDone = false; if( !gameLocal.isClient ) { SpawnModelProxy(); } BecomeActive( TH_TICKER ); if (gameLocal.isClient) { //rww - do this right away on the client //Get rid of our model. The modelProxy is our model now. SetModel( "" ); } //rww - allow events on client fl.clientEvents = true;}
开发者ID:mrwonko,项目名称:preymotionmod,代码行数:31,
示例3: switch//--------------------------------// hhProxDoor::SetDoorState//--------------------------------void hhProxDoor::SetDoorState( EProxState doorState ) { int i; //HUMANHEAD PCF mdl 04/27/06 - Don't allow locked doors to become active if ( doorLocked && doorState == PROXSTATE_Active ) { return; } switch( doorState ) { case PROXSTATE_Active: BecomeActive( TH_TICKER ); CancelEvents( &EV_PollForExit ); PostEventMS( &EV_PollForExit, 500 ); OpenPortal(); break; case PROXSTATE_GoingInactive: break; case PROXSTATE_Inactive: // Guarantee the door is closed for( i = 0; i < doorPieces.Num(); i++ ) { if (doorPieces[i].IsValid()) { doorPieces[ i ]->SetProximity( 0.0 ); } } ClosePortal(); CancelEvents( &EV_PollForExit ); BecomeInactive( TH_TICKER ); break; } proxState = doorState;}
开发者ID:mrwonko,项目名称:preymotionmod,代码行数:37,
示例4: BecomeActivevoid idWorldManager::Spawn( void ){ int i; for (i = 0; i < 3; i++) { idDict args; records[i].index = 0; records[i].playing = false; records[i].completed = false; args.Clear(); args.Set( "model", "models/monster_npc/tris.ase" ); args.SetInt( "solid", 0 ); args.Set("skin", "skins/npc/ghost2"); records[i].ghost = ( idMover * )gameLocal.SpawnEntityType( idMover::Type, &args ); records[i].ghost->Hide(); recordlines[i].lines.Clear(); } lastPosition = vec3_zero; lastAngle = 0; nextRecordtime = 0; recordStarttime = 0; index = 0; state = OFF; BecomeActive( TH_THINK );}
开发者ID:tankorsmash,项目名称:quadcow,代码行数:29,
示例5: at/*================idSound::Spawn================*/void idSound::Spawn( void ){ spawnArgs.GetVector( "move", "0 0 0", shakeTranslate ); spawnArgs.GetAngles( "rotate", "0 0 0", shakeRotate ); spawnArgs.GetFloat( "random", "0", random ); spawnArgs.GetFloat( "wait", "0", wait ); if( ( wait > 0.0f ) && ( random >= wait ) ) { random = wait - 0.001; gameLocal.DWarning( "speaker '%s' at (%s) has random >= wait", name.c_str(), GetPhysics()->GetOrigin().ToString( 0 ) ); } soundVol = 0.0f; lastSoundVol = 0.0f; if( ( shakeRotate != ang_zero ) || ( shakeTranslate != vec3_zero ) ) { BecomeActive( TH_THINK ); } if( !refSound.waitfortrigger && ( wait > 0.0f ) ) { timerOn = true; PostEventSec( &EV_Speaker_Timer, wait + gameLocal.random.CRandomFloat() * random ); } else { timerOn = false; }}
开发者ID:revelator,项目名称:MHDoom,代码行数:36,
示例6: memset/*================idExplodingBarrel::AddLight================*/void idExplodingBarrel::AddLight( const char *name, bool burn ) { if ( lightHandle >= 0 ){ gameRenderWorld->FreeLightDef( lightHandle ); } memset( &light, 0, sizeof ( light ) ); light.axis = mat3_identity; light.lightRadius.x = spawnArgs.GetFloat( "light_radius" ); light.lightRadius.y = light.lightRadius.z = light.lightRadius.x; light.origin = physicsObj.GetOrigin(); light.origin.z += 128; light.pointLight = true;// RAVEN BEGIN// dluetscher: added detail levels to render lights light.detailLevel = DEFAULT_LIGHT_DETAIL_LEVEL;// dluetscher: made sure that barrels are set to no shadows light.noShadows = true;// RAVEN END light.shader = declManager->FindMaterial( name ); light.shaderParms[ SHADERPARM_RED ] = 2.0f; light.shaderParms[ SHADERPARM_GREEN ] = 2.0f; light.shaderParms[ SHADERPARM_BLUE ] = 2.0f; light.shaderParms[ SHADERPARM_ALPHA ] = 2.0f; lightHandle = gameRenderWorld->AddLightDef( &light ); lightTime = gameLocal.time; BecomeActive( TH_THINK );}
开发者ID:ET-NiK,项目名称:amxxgroup,代码行数:31,
示例7: idClipModelvoid rvVehicleSpline::Spawn ( void ) { physicsObj.SetSelf( this ); physicsObj.SetClipModel( new idClipModel(GetPhysics()->GetClipModel()), 1.0f ); physicsObj.SetContents( CONTENTS_SOLID ); physicsObj.SetClipMask( 0 ); physicsObj.SetLinearVelocity( GetPhysics()->GetLinearVelocity() ); physicsObj.SetLinearAcceleration( spawnArgs.GetFloat( "accel", "200" ) ); physicsObj.SetLinearDeceleration( spawnArgs.GetFloat( "decel", "200" ) ); viewAxis = idAngles( 0, spawnArgs.GetFloat( "angle" ) , 0 ).ToMat3(); physicsObj.SetAxis( GetPhysics()->GetAxis() * viewAxis ); physicsObj.SetOrigin( GetPhysics()->GetOrigin() ); SetPhysics( &physicsObj ); BecomeActive( TH_THINK ); accelWithStrafe = Sign( spawnArgs.GetFloat("accel_strafe") ); idealSpeed = spawnArgs.GetFloat( "speed", "200" ); PostEventMS( &EV_PostSpawn, 0 );}
开发者ID:AliKalkandelen,项目名称:quake4,代码行数:25,
示例8: GetPhysics/*================rvVehicleAnimated::Spawn================*/void rvVehicleAnimated::Spawn( void ) { turnRate = spawnArgs.GetFloat ( "turnRate", "90" ); viewAngles = GetPhysics()->GetAxis ( ).ToAngles ( ); viewAxis = viewAngles.ToMat3(); // Initialize the physics object physicsObj.SetSelf( this ); physicsObj.SetClipModel( new idClipModel( GetPhysics()->GetClipModel() ), 1.0f ); physicsObj.SetContents( CONTENTS_BODY ); physicsObj.SetClipMask( MASK_PLAYERSOLID|CONTENTS_VEHICLECLIP ); physicsObj.SetMaxStepHeight( spawnArgs.GetFloat ( "stepheight", "14" ) ); // Start just a tad above the floor physicsObj.SetOrigin( GetPhysics()->GetOrigin() + idVec3( 0, 0, CM_CLIP_EPSILON ) ); physicsObj.SetMass( spawnArgs.GetFloat( "mass", "100" ) ); physicsObj.SetDelta( vec3_origin ); // Gravity idVec3 gravity = spawnArgs.GetVector( "gravityDir", "0 0 -1" ); gravity *= g_gravity.GetFloat ( ); physicsObj.SetGravity( gravity ); SetPhysics( &physicsObj ); animator.RemoveOriginOffset( true ); additionalDelta.Zero(); BecomeActive( TH_THINK ); }
开发者ID:AliKalkandelen,项目名称:quake4,代码行数:35,
示例9: BecomeActive/*================idTarget_FadeEntity::Event_Activate================*/void idTarget_FadeEntity::Event_Activate( idEntity *activator ){ idEntity *ent; int i; if( !targets.Num() ) { return; } // always allow during cinematics cinematic = true; BecomeActive( TH_THINK ); ent = this; for( i = 0; i < targets.Num(); i++ ) { ent = targets[ i ].GetEntity(); if( ent ) { ent->GetColor( fadeFrom ); break; } } fadeStart = gameLocal.time; fadeEnd = gameLocal.time + SEC2MS( spawnArgs.GetFloat( "fadetime" ) );}
开发者ID:revelator,项目名称:MHDoom,代码行数:33,
示例10: BecomeActive/*================idBrittleFracture::DropShard================*/void idBrittleFracture::DropShard( shard_t* shard, const idVec3& point, const idVec3& dir, const float impulse, const int time ){ int i, j, clipModelId; float dist, f; idVec3 dir2, origin; idMat3 axis; shard_t* neighbour; // don't display decals on dropped shards shard->decals.DeleteContents( true ); // remove neighbour pointers of neighbours pointing to this shard for( i = 0; i < shard->neighbours.Num(); i++ ) { neighbour = shard->neighbours[i]; for( j = 0; j < neighbour->neighbours.Num(); j++ ) { if( neighbour->neighbours[j] == shard ) { neighbour->neighbours.RemoveIndex( j ); break; } } } // remove neighbour pointers shard->neighbours.Clear(); // remove the clip model from the static physics object clipModelId = shard->clipModel->GetId(); physicsObj.SetClipModel( NULL, 1.0f, clipModelId, false ); origin = shard->clipModel->GetOrigin(); axis = shard->clipModel->GetAxis(); // set the dropped time for fading shard->droppedTime = time; dir2 = origin - point; dist = dir2.Normalize(); f = dist > maxShatterRadius ? 1.0f : idMath::Sqrt( idMath::Fabs( dist - minShatterRadius ) ) * ( 1.0f / idMath::Sqrt( idMath::Fabs( maxShatterRadius - minShatterRadius ) ) ); // setup the physics shard->physicsObj.SetSelf( this ); shard->physicsObj.SetClipModel( shard->clipModel, density ); shard->physicsObj.SetMass( shardMass ); shard->physicsObj.SetOrigin( origin ); shard->physicsObj.SetAxis( axis ); shard->physicsObj.SetBouncyness( bouncyness ); shard->physicsObj.SetFriction( 0.6f, 0.6f, friction ); shard->physicsObj.SetGravity( gameLocal.GetGravity() ); shard->physicsObj.SetContents( CONTENTS_RENDERMODEL ); shard->physicsObj.SetClipMask( MASK_SOLID | CONTENTS_MOVEABLECLIP ); shard->physicsObj.ApplyImpulse( 0, origin, impulse * linearVelocityScale * dir ); shard->physicsObj.SetAngularVelocity( dir.Cross( dir2 ) * ( f * angularVelocityScale ) ); shard->clipModel->SetId( clipModelId ); BecomeActive( TH_PHYSICS );}
开发者ID:dcahrakos,项目名称:RBDOOM-3-BFG,代码行数:65,
示例11: BecomeActive/*===============tdmFuncShooter::Spawn===============*/void tdmFuncShooter::Spawn() { _active = !spawnArgs.GetBool( "start_off" ); _lastFireTime = 0; _fireInterval = spawnArgs.GetInt( "fire_interval", "-1" ); _fireIntervalFuzzyness = spawnArgs.GetInt( "fire_interval_fuzzyness", "0" ); _startDelay = spawnArgs.GetInt( "start_delay", "0" ); idStr reqStimStr = spawnArgs.GetString( "required_stim" ); if( !reqStimStr.IsEmpty() ) { _requiredStim = CStimResponse::GetStimType( reqStimStr ); _requiredStimTimeOut = spawnArgs.GetInt( "required_stim_timeout", "5000" ); } _triggerRequired = spawnArgs.GetBool( "required_trigger" ); _triggerTimeOut = spawnArgs.GetInt( "required_trigger_timeout", "4000" ); _ammo = spawnArgs.GetInt( "ammo", "-1" ); _useAmmo = ( _ammo != -1 ); if( _active && _fireInterval > 0 ) { BecomeActive( TH_THINK ); setupNextFireTime(); _nextFireTime += _startDelay; // Set the end time if we have a positive lifetime int maxLifeTime = spawnArgs.GetInt( "max_lifetime", "-1" ); if( maxLifeTime > 0 ) { _endTime = gameLocal.time + SEC2MS( maxLifeTime ); } } // Always react to stims if a required stim is setup. if( _requiredStim != ST_DEFAULT ) { //DM_LOG(LC_STIM_RESPONSE, LT_INFO)LOGSTRING("tdmFuncShooter is requiring stim %d/r", _requiredStim); GetPhysics()->SetContents( GetPhysics()->GetContents() | CONTENTS_RESPONSE ); }}
开发者ID:revelator,项目名称:The-Darkmod-Experimental,代码行数:36,
示例12: memset/*================idExplodingBarrel::AddParticles================*/void idExplodingBarrel::AddParticles( const char *name, bool burn ) { if ( name && *name ) { if ( particleModelDefHandle >= 0 ){ gameRenderWorld->FreeEntityDef( particleModelDefHandle ); } memset( &particleRenderEntity, 0, sizeof ( particleRenderEntity ) ); const idDeclModelDef *modelDef = static_cast<const idDeclModelDef *>( declManager->FindType( DECL_MODELDEF, name ) ); if ( modelDef ) { particleRenderEntity.origin = physicsObj.GetAbsBounds().GetCenter(); particleRenderEntity.axis = mat3_identity; particleRenderEntity.hModel = modelDef->ModelHandle(); float rgb = ( burn ) ? 0.0f : 1.0f; particleRenderEntity.shaderParms[ SHADERPARM_RED ] = rgb; particleRenderEntity.shaderParms[ SHADERPARM_GREEN ] = rgb; particleRenderEntity.shaderParms[ SHADERPARM_BLUE ] = rgb; particleRenderEntity.shaderParms[ SHADERPARM_ALPHA ] = rgb; particleRenderEntity.shaderParms[ SHADERPARM_TIMEOFFSET ] = -MS2SEC( gameLocal.realClientTime ); particleRenderEntity.shaderParms[ SHADERPARM_DIVERSITY ] = ( burn ) ? 1.0f : gameLocal.random.RandomInt( 90 ); particleRenderEntity.suppressSurfaceInViewID = -8; // sikk - Depth Render if ( !particleRenderEntity.hModel ) { particleRenderEntity.hModel = renderModelManager->FindModel( name ); } particleModelDefHandle = gameRenderWorld->AddEntityDef( &particleRenderEntity ); if ( burn ) { BecomeActive( TH_THINK ); } particleTime = gameLocal.realClientTime; } }}
开发者ID:alepulver,项目名称:dhewm3,代码行数:37,
示例13: at/*================idSound::Spawn================*/void idSound::Spawn( void ) { spawnArgs.GetVector( "move", "0 0 0", shakeTranslate ); spawnArgs.GetAngles( "rotate", "0 0 0", shakeRotate ); spawnArgs.GetFloat( "random", "0", random ); spawnArgs.GetFloat( "wait", "0", wait ); if ( ( wait > 0.0f ) && ( random >= wait ) ) { random = wait - 0.001; gameLocal.Warning( "speaker '%s' at (%s) has random >= wait", name.c_str(), GetPhysics()->GetOrigin().ToString(0) ); } soundVol = 0.0f; lastSoundVol = 0.0f; if ( ( shakeRotate != ang_zero ) || ( shakeTranslate != vec3_zero ) ) { BecomeActive( TH_THINK ); } if ( !refSound.waitfortrigger && ( wait > 0.0f ) ) { timerOn = true; PostEventSec( &EV_Speaker_Timer, wait + gameLocal.random.CRandomFloat() * random ); } else { timerOn = false; } // add this speaker to the list of ambient music speakers affected by tdm_music_volume if ( spawnArgs.GetBool( "s_music" ) ) { gameLocal.musicSpeakers.Append( entityNumber ); }}
开发者ID:dolanor,项目名称:TheDarkMod,代码行数:34,
示例14: Setup/*================idEntityFx::Event_Trigger================*/void idEntityFx::Event_Trigger( idEntity *activator ) { if ( g_skipFX.GetBool() ) { return; } float fxActionDelay; const char *fx; if ( gameLocal.time < nextTriggerTime ) { return; } if ( spawnArgs.GetString( "fx", "", &fx) ) { Setup( fx ); Start( gameLocal.time ); PostEventMS( &EV_Fx_KillFx, Duration() ); BecomeActive( TH_THINK ); } fxActionDelay = spawnArgs.GetFloat( "fxActionDelay" ); if ( fxActionDelay != 0.0f ) { nextTriggerTime = gameLocal.time + SEC2MS( fxActionDelay ); } else { // prevent multiple triggers on same frame nextTriggerTime = gameLocal.time + 1; } PostEventSec( &EV_Fx_Action, fxActionDelay, activator );}
开发者ID:Salamek,项目名称:Shadow-of-Dust,代码行数:34,
示例15: CheckSpawn/*==============idSpawner::Event_Activate==============*/void idSpawner::Event_Activate( idEntity *activator ) { // "trigger_only" spawners will attempt to spawn when triggered if ( spawnArgs.GetBool( "trigger_only" ) ) { // Update next spawn time to follo CheckSpawn into thinking its time to spawn again nextSpawnTime = gameLocal.time; CheckSpawn(); return; } // If nextSpawnTime is zero then the spawner is currently deactivated if ( nextSpawnTime == 0 ) { // Start thinking BecomeActive( TH_THINK ); // Allow immediate spawn nextSpawnTime = gameLocal.time; // Spawn any ai targets and add them to the current count ActivateTargets( this ); } else { nextSpawnTime = 0; BecomeInactive( TH_THINK ); // Remove the spawner if need be if ( spawnArgs.GetBool( "remove", "1" ) ) { PostEventMS( &EV_Remove, 0 ); } }}
开发者ID:RobertBeckebans,项目名称:Sikkpin-Breadcrumps-src,代码行数:34,
示例16: GetColor/*================idLight::Fade================*/void idLight::Fade( const idVec4 &to, float fadeTime ) { GetColor( fadeFrom ); fadeTo = to; fadeStart = gameLocal.time; fadeEnd = gameLocal.time + SEC2MS( fadeTime ); BecomeActive( TH_THINK );}
开发者ID:alepulver,项目名称:dhewm3,代码行数:12,
示例17: BecomeInactive/*================idTrigger_Touch::Event_Trigger================*/void idTrigger_Touch::Event_Trigger( idEntity *activator ) { if ( thinkFlags & TH_THINK ) { BecomeInactive( TH_THINK ); } else { BecomeActive( TH_THINK ); }}
开发者ID:ET-NiK,项目名称:amxxgroup,代码行数:12,
示例18: BecomeInactiveEND_CLASS/*================idTarget_EndLevel::Event_Activate================*/void idTarget_EndLevel::Event_Activate( idEntity *activator ) { if ( thinkFlags & TH_THINK ) { BecomeInactive( TH_THINK ); } else { // always allow during cinematics cinematic = true; BecomeActive( TH_THINK ); } idPlayer* player; player = gameLocal.GetLocalPlayer(); player->SetInfluenceLevel( 2 ); player->endLevelTime = gameLocal.time; // sikk - End Level time player->doEndLevel = true; // sikk - End Level Flag if ( !player->scoreBoardOpen ) { player->ToggleScoreboard(); } StartSoundShader( declManager->FindSound( "music_endLevel" ), SND_CHANNEL_ANY, 0, false, NULL );}
开发者ID:RobertBeckebans,项目名称:Sikkpin-Feedback,代码行数:26,
示例19: SEC2MS/*================idTarget_SetFov::Event_Activate================*/void idTarget_SetFov::Event_Activate( idEntity *activator ) { // always allow during cinematics cinematic = true; idPlayer *player = gameLocal.GetLocalPlayer(); fovSetting.Init( gameLocal.time, SEC2MS( spawnArgs.GetFloat( "time" ) ), player ? player->DefaultFov() : g_fov.GetFloat(), spawnArgs.GetFloat( "fov" ) ); BecomeActive( TH_THINK );}
开发者ID:nbohr1more,项目名称:Revelation,代码行数:12,
示例20: BecomeActivevoid hhAnimatedGui::FadeInGui() { float curScale = guiScale.GetCurrentValue(gameLocal.time); guiScale.Init(gameLocal.time, 500, curScale, AG_LARGE_SCALE); BecomeActive(TH_THINK); attachedConsole->SetDeformation(DEFORMTYPE_SCALE, curScale); attachedConsole->Show();}
开发者ID:mrwonko,项目名称:preymotionmod,代码行数:7,
示例21: explicitTS/*================idExplodingBarrel::AddParticles================*/void idExplodingBarrel::AddParticles( const char* name, bool burn ){ if( name && *name ) { int explicitTimeGroup = timeGroup; SetTimeState explicitTS( explicitTimeGroup ); if( particleModelDefHandle >= 0 ) { gameRenderWorld->FreeEntityDef( particleModelDefHandle ); } memset( &particleRenderEntity, 0, sizeof( particleRenderEntity ) ); idRenderModel* modelDef = renderModelManager->FindModel( name ); if( modelDef ) { particleRenderEntity.origin = physicsObj.GetAbsBounds().GetCenter(); particleRenderEntity.axis = mat3_identity; particleRenderEntity.hModel = modelDef; float rgb = ( burn ) ? 0.0f : 1.0f; particleRenderEntity.shaderParms[ SHADERPARM_RED ] = rgb; particleRenderEntity.shaderParms[ SHADERPARM_GREEN ] = rgb; particleRenderEntity.shaderParms[ SHADERPARM_BLUE ] = rgb; particleRenderEntity.shaderParms[ SHADERPARM_ALPHA ] = rgb; particleRenderEntity.shaderParms[ SHADERPARM_TIMEOFFSET ] = -MS2SEC( gameLocal.realClientTime ); particleRenderEntity.shaderParms[ SHADERPARM_DIVERSITY ] = ( burn ) ? 1.0f : gameLocal.random.RandomInt( 90 ); particleRenderEntity.timeGroup = explicitTimeGroup; particleModelDefHandle = gameRenderWorld->AddEntityDef( &particleRenderEntity ); if( burn ) { BecomeActive( TH_THINK ); } particleTime = gameLocal.realClientTime; } }}
开发者ID:dcahrakos,项目名称:RBDOOM-3-BFG,代码行数:39,
示例22: RV_PUSH_HEAP_MEM/*================idTrigger_Touch::Spawn================*/void idTrigger_Touch::Spawn( void ) { // get the clip model// RAVEN BEGIN// mwhitlock: Dynamic memory consolidation RV_PUSH_HEAP_MEM(this);// RAVEN END clipModel = new idClipModel( GetPhysics()->GetClipModel() );// RAVEN BEGIN// mwhitlock: Dynamic memory consolidation RV_POP_HEAP();// RAVEN END // remove the collision model from the physics object GetPhysics()->SetClipModel( NULL, 1.0f ); if ( spawnArgs.GetBool( "start_on" ) ) { BecomeActive( TH_THINK ); } filterTeam = -1; idStr filterTeamStr = spawnArgs.GetString( "filterTeam" ); if ( filterTeamStr.Size() ) { if ( !idStr::Icmp( "marine", filterTeamStr.c_str() ) ) { filterTeam = AITEAM_MARINE; } else if ( !idStr::Icmp( "strogg", filterTeamStr.c_str() ) ) { filterTeam = AITEAM_STROGG; } }}
开发者ID:ET-NiK,项目名称:amxxgroup,代码行数:36,
示例23: GetPhysics/*===========hhForceField::EnterTurningOnState===========*/void hhForceField::EnterTurningOnState() { GetPhysics()->SetContents( cachedContents ); SetSkin( NULL ); StartSound( "snd_start", SND_CHANNEL_ANY ); Show(); BecomeActive( TH_TICKER );}
开发者ID:mrwonko,项目名称:preymotionmod,代码行数:13,
示例24: BecomeActive/*================hhSpring::LinkSpringAll HUMANHEAD================*/void hhSpring::LinkSpringAll(idEntity *ent1, int bodyID1, idVec3 &offset1, idEntity *ent2, int bodyID2, idVec3 &offset2) { physics1 = ent1; physics2 = ent2; spring.SetPosition( physics1.GetEntity(), bodyID1, offset1, physics2.GetEntity(), bodyID2, offset2 ); BecomeActive(TH_THINK);}
开发者ID:mrwonko,项目名称:preymotionmod,代码行数:14,
示例25: idClipModel/*================idMoveableItem::Spawn================*/void idMoveableItem::Spawn( void ) { idTraceModel trm; float density, friction, bouncyness, tsize; idStr clipModelName; idBounds bounds; // create a trigger for item pickup spawnArgs.GetFloat( "triggersize", "16.0", tsize ); trigger = new idClipModel( idTraceModel( idBounds( vec3_origin ).Expand( tsize ) ) ); trigger->Link( gameLocal.clip, this, 0, GetPhysics()->GetOrigin(), GetPhysics()->GetAxis() ); trigger->SetContents( CONTENTS_TRIGGER ); // check if a clip model is set spawnArgs.GetString( "clipmodel", "", clipModelName ); if ( !clipModelName[0] ) { clipModelName = spawnArgs.GetString( "model" ); // use the visual model } // load the trace model if ( !collisionModelManager->TrmFromModel( clipModelName, trm ) ) { gameLocal.Error( "idMoveableItem '%s': cannot load collision model %s", name.c_str(), clipModelName.c_str() ); return; } // if the model should be shrinked if ( spawnArgs.GetBool( "clipshrink" ) ) { trm.Shrink( CM_CLIP_EPSILON ); } // get rigid body properties spawnArgs.GetFloat( "density", "0.5", density ); density = idMath::ClampFloat( 0.001f, 1000.0f, density ); spawnArgs.GetFloat( "friction", "0.05", friction ); friction = idMath::ClampFloat( 0.0f, 1.0f, friction ); spawnArgs.GetFloat( "bouncyness", "0.6", bouncyness ); bouncyness = idMath::ClampFloat( 0.0f, 1.0f, bouncyness ); // setup the physics physicsObj.SetSelf( this ); physicsObj.SetClipModel( new idClipModel( trm ), density ); physicsObj.SetOrigin( GetPhysics()->GetOrigin() ); physicsObj.SetAxis( GetPhysics()->GetAxis() ); physicsObj.SetBouncyness( bouncyness ); physicsObj.SetFriction( 0.6f, 0.6f, friction ); physicsObj.SetGravity( gameLocal.GetGravity() ); physicsObj.SetContents( CONTENTS_RENDERMODEL ); physicsObj.SetClipMask( MASK_SOLID | CONTENTS_MOVEABLECLIP ); SetPhysics( &physicsObj ); smoke = NULL; smokeTime = 0; const char *smokeName = spawnArgs.GetString( "smoke_trail" ); if ( *smokeName != '/0' ) { smoke = static_cast<const idDeclParticle *>( declManager->FindType( DECL_PARTICLE, smokeName ) ); smokeTime = gameLocal.time; BecomeActive( TH_UPDATEPARTICLES ); }}
开发者ID:angjminer,项目名称:deamos,代码行数:63,
示例26: and/*================idTrigger_Multi::Spawn"wait" : Seconds between triggerings, 0.5 default, -1 = one time only."call" : Script function to call when triggered"random" wait variance, default is 0Variable sized repeatable trigger. Must be targeted at one or more entities.so, the basic time between firing is a random time between(wait - random) and (wait + random)================*/void idTrigger_Multi::Spawn( void ) { spawnArgs.GetFloat( "wait", "0.5", wait ); spawnArgs.GetFloat( "random", "0", random ); spawnArgs.GetFloat( "delay", "0", delay ); spawnArgs.GetFloat( "random_delay", "0", random_delay ); if ( random && ( random >= wait ) && ( wait >= 0 ) ) { random = wait - 1; gameLocal.Warning( "idTrigger_Multi '%s' at (%s) has random >= wait", name.c_str(), GetPhysics()->GetOrigin().ToString(0) ); } if ( random_delay && ( random_delay >= delay ) && ( delay >= 0 ) ) { random_delay = delay - 1; gameLocal.Warning( "idTrigger_Multi '%s' at (%s) has random_delay >= delay", name.c_str(), GetPhysics()->GetOrigin().ToString(0) ); } spawnArgs.GetString( "requires", "", requires ); spawnArgs.GetInt( "removeItem", "0", removeItem ); spawnArgs.GetBool( "triggerFirst", "0", triggerFirst ); spawnArgs.GetBool( "triggerWithSelf", "0", triggerWithSelf ); spawnArgs.GetInt( "buyZone", "0", buyZoneTrigger); spawnArgs.GetInt( "controlZone", "0", controlZoneTrigger); if ( buyZoneTrigger == -1 ) gameLocal.Warning( "trigger_buyzone '%s' at (%s) has no buyZone key set!", name.c_str(), GetPhysics()->GetOrigin().ToString(0) ); if ( controlZoneTrigger == -1 ) gameLocal.Warning( "trigger_controlzone '%s' at (%s) has no controlZone key set!", name.c_str(), GetPhysics()->GetOrigin().ToString(0) ); if ( spawnArgs.GetBool( "onlyVehicle" ) ) { touchVehicle = true; } else if ( spawnArgs.GetBool( "anyTouch" ) ) { touchClient = true; touchOther = true; } else if ( spawnArgs.GetBool( "noTouch" ) ) { touchClient = false; touchOther = false; } else if ( spawnArgs.GetBool( "noClient" ) ) { touchClient = false; touchOther = true; } else { touchClient = true; touchOther = false; } nextTriggerTime = 0; if ( spawnArgs.GetBool( "flashlight_trigger" ) ) { GetPhysics()->SetContents( CONTENTS_FLASHLIGHT_TRIGGER ); } else if ( spawnArgs.GetBool( "projectile_trigger" ) ) { GetPhysics()->SetContents( CONTENTS_TRIGGER | CONTENTS_PROJECTILE ); } else { GetPhysics()->SetContents( CONTENTS_TRIGGER ); } BecomeActive( TH_THINK );}
开发者ID:ET-NiK,项目名称:amxxgroup,代码行数:70,
示例27: PostEventMS/*================idSecurityCamera::Spawn================*/void idSecurityCamera::Spawn( void ) { idStr str; sweepAngle = spawnArgs.GetFloat( "sweepAngle", "90" ); health = spawnArgs.GetInt( "health", "100" ); scanFov = spawnArgs.GetFloat( "scanFov", "90" ); scanDist = spawnArgs.GetFloat( "scanDist", "200" ); flipAxis = spawnArgs.GetBool( "flipAxis" ); modelAxis = spawnArgs.GetInt( "modelAxis" ); if ( modelAxis < 0 || modelAxis > 2 ) { modelAxis = 0; } spawnArgs.GetVector( "viewOffset", "0 0 0", viewOffset ); if ( spawnArgs.GetBool( "spotLight" ) ) { PostEventMS( &EV_SecurityCam_AddLight, 0 ); } negativeSweep = ( sweepAngle < 0 ) ? true : false; sweepAngle = abs( sweepAngle ); scanFovCos = cos( scanFov * idMath::PI / 360.0f ); angle = GetPhysics()->GetAxis().ToAngles().yaw; StartSweep(); SetAlertMode( SCANNING ); BecomeActive( TH_THINK ); if ( health ) { fl.takedamage = true; } pvsArea = gameLocal.pvs.GetPVSArea( GetPhysics()->GetOrigin() ); // if no target specified use ourself str = spawnArgs.GetString( "cameraTarget" ); if ( str.Length() == 0 ) { spawnArgs.Set( "cameraTarget", spawnArgs.GetString( "name" ) ); } // check if a clip model is set spawnArgs.GetString( "clipmodel", "", str ); if ( !str[0] ) { str = spawnArgs.GetString( "model" ); // use the visual model } if ( !collisionModelManager->TrmFromModel( str, trm ) ) { gameLocal.Error( "idSecurityCamera '%s': cannot load collision model %s", name.c_str(), str.c_str() ); return; } GetPhysics()->SetContents( CONTENTS_SOLID ); GetPhysics()->SetClipMask( MASK_SOLID | CONTENTS_BODY | CONTENTS_CORPSE | CONTENTS_MOVEABLECLIP ); // setup the physics UpdateChangeableSpawnArgs( NULL );}
开发者ID:angjminer,项目名称:deamos,代码行数:62,
示例28: GetPhysicsvoid idMoveable::SetIsPushed( bool isNowPushed, const idVec3 &pushDirection ) { isPushed = isNowPushed; this->pushDirection = pushDirection; lastPushOrigin = GetPhysics()->GetOrigin(); // Update our think flags to allow UpdateMoveables to be called. if( isPushed ) { BecomeActive( TH_THINK ); }}
开发者ID:revelator,项目名称:The-Darkmod-Experimental,代码行数:9,
注:本文中的BecomeActive函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ BecomeExplosion1函数代码示例 C++ BeamOp函数代码示例 |