这篇教程C++ Attack函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中Attack函数的典型用法代码示例。如果您正苦于以下问题:C++ Attack函数的具体用法?C++ Attack怎么用?C++ Attack使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了Attack函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: CheckTargetvoid MultiShot::Update( void ) { Attackable *temp; /* If we have Targets, check their status. */ if( pTarget != NULL || pTarget2 != NULL || pTarget3 != NULL ) CheckTarget(); /* Search for Targets. */ if( pTarget == NULL || pTarget2 == NULL || pTarget3 == NULL ) FindTarget(); /* If we found a new Target, and they are in range.. */ if( pTarget != NULL ) Attack(); /*Using a temp target to hold the pTarget. This way we don't have to override Attack().*/ if( pTarget2 != NULL ) { temp = pTarget; pTarget = pTarget2; Attack(); pTarget = temp; } if( pTarget3 != NULL ) { temp = pTarget; pTarget = pTarget3; Attack(); pTarget = temp; }}
开发者ID:dho1,项目名称:Project,代码行数:30,
示例2: switch/*================rvWeaponMachinegun::State_Fire================*/stateResult_t rvWeaponMachinegun::State_Fire ( const stateParms_t& parms ) { enum { STAGE_INIT, STAGE_WAIT, }; switch ( parms.stage ) { case STAGE_INIT: if ( wsfl.zoom ) { nextAttackTime = gameLocal.time + (altFireRate * owner->PowerUpModifier ( PMOD_FIRERATE )); Attack ( true, 1, spreadZoom, 0, 1.0f ); fireHeld = true; } else { nextAttackTime = gameLocal.time + (fireRate * owner->PowerUpModifier ( PMOD_FIRERATE )); Attack ( false, 1, spread, 0, 1.0f ); } PlayAnim ( ANIMCHANNEL_ALL, "fire", 0 ); return SRESULT_STAGE ( STAGE_WAIT ); case STAGE_WAIT: if ( !fireHeld && wsfl.attack && gameLocal.time >= nextAttackTime && AmmoInClip() && !wsfl.lowerWeapon ) { SetState ( "Fire", 0 ); return SRESULT_DONE; } if ( AnimDone ( ANIMCHANNEL_ALL, 0 ) ) { SetState ( "Idle", 0 ); return SRESULT_DONE; } if ( UpdateFlashlight ( ) ) { return SRESULT_DONE; } return SRESULT_WAIT; } return SRESULT_ERROR;}
开发者ID:Big-Zam,项目名称:IT266-gameMod,代码行数:40,
示例3: OnKillvoid Bot::OnAttack(int damage, Bot* attacker){ unit->Hit(damage, normal); if (unit->GetHP() <= 0) { OnKill(); } else if (unit->team == App->AI->playerTeam) { if (unit->ArrivedToDestination()) { Attack(attacker); } } else if (father) { App->AI->OnUnitDanger(father, this); } else if (flees) { if (unit->GetHP() < unit->GetMaxHP() / 10) SetState(flee); else SetState(attack); } else if (state != attack) Attack(attacker);}
开发者ID:The4Bros,项目名称:Starcraft_AI,代码行数:29,
示例4: initPartyMemberCvoid Party::initPartyMemberC() { std::vector<float> affinities = {1.5, 1.5, 1.5, 1, 1, 1, 1}; std::vector<Attack> attacks; attacks.push_back(Attack("Arrow", 1, pierce)); attacks.push_back(Attack("Lightning", 9, lightning)); C = PartyMember("Mage", 50, 40, 2, attacks, affinities);}
开发者ID:brookswithrow,项目名称:RPG,代码行数:8,
示例5: initPartyMemberBvoid Party::initPartyMemberB() { std::vector<float> affinities = {0.5, 0.5, 0.5, 1, 1, 1, 1}; std::vector<Attack> attacks; attacks.push_back(Attack("Crush", 8, crush)); attacks.push_back(Attack("Water", 2, water)); B = PartyMember("Tank", 50, 40, 2, attacks, affinities);}
开发者ID:brookswithrow,项目名称:RPG,代码行数:8,
示例6: initPartyMemberAvoid Party::initPartyMemberA() { std::vector<float> affinities = {1, 1, 1, 1, 1, 1, 1}; std::vector<Attack> attacks; attacks.push_back(Attack("Punch", 2, pierce)); attacks.push_back(Attack("Fire", 4, fire)); attacks.push_back(Attack("Sword", 6, slash)); A = PartyMember("DPS", 50, 40, 3, attacks, affinities);}
开发者ID:brookswithrow,项目名称:RPG,代码行数:9,
示例7: StartSound/*================rvMonsterStroggHover::DoNamedAttack================*/void rvMonsterStroggHover::DoNamedAttack ( const char* attackName, jointHandle_t joint ) { if ( joint != INVALID_JOINT ) { StartSound ( va("snd_%s_fire",attackName), SND_CHANNEL_ANY, 0, false, NULL ); PlayEffect ( va("fx_%s_flash",attackName), joint ); Attack ( attackName, joint, GetEnemy() ); }}
开发者ID:ET-NiK,项目名称:amxxgroup,代码行数:12,
示例8: SearchForRetreatPositionbool SoulDestroyer::Advance( Unit *_unit ){ if( m_dead ) return AdvanceDead( _unit ); if( m_panic > 0.0 ) { m_targetEntity.SetInvalid(); if( syncfrand(10.0) < 5.0 ) { SearchForRetreatPosition(); } m_panic -= SERVER_ADVANCE_PERIOD; } else if( m_targetEntity.IsValid() ) { WorldObject *target = g_app->m_location->GetEntity( m_targetEntity ); if( target ) { double distance = (target->m_pos - m_pos).Mag(); m_targetPos = target->m_pos; if( distance > SOULDESTROYER_MAXSEARCHRANGE ) { m_targetEntity.SetInvalid(); } } else { m_targetEntity.SetInvalid(); } } m_retargetTimer -= SERVER_ADVANCE_PERIOD; bool arrived = AdvanceToTargetPosition(); if( arrived || m_targetPos == g_zeroVector || m_retargetTimer < 0.0) { m_retargetTimer = 5.0; bool found = false; if( !found && m_panic < 0.1 ) found = SearchForTargetEnemy(); if( !found ) found = SearchForRandomPosition(); } RecordHistoryPosition(); if( m_panic < 0.1 ) Attack( m_pos );#ifdef USE_DIRECT3D if(g_deformEffect) { Vector3* pos1 = m_positionHistory.GetPointer(m_positionHistory.Size()-1); Vector3* pos2 = m_positionHistory.GetPointer(m_positionHistory.Size()-2); //if(pos1) g_deformEffect->AddTearing(*pos1,0.4); //if(pos1 && pos2) g_deformEffect->AddTearing((*pos1+*pos2)*0.5,0.4); if(pos1 && pos2) g_deformEffect->AddTearingPath(*pos1,*pos2,0.4); }#endif return Entity::Advance(_unit);}
开发者ID:gene9,项目名称:Darwinia-and-Multiwinia-Source-Code,代码行数:60,
示例9: GetCharacterMovement// Called every framevoid AZombieCharacter::Tick( float DeltaTime ){ Super::Tick( DeltaTime ); GetCharacterMovement()->MaxWalkSpeed = InitialMaxWalkSpeed; ZAnimInstance->Speed = InitialMaxWalkSpeed; //If the zombie is within the melee range cancel any movement animation so it's more realistic float Distance = FVector::Dist(GetActorLocation(),OurCharacter->GetActorLocation()); if (Distance<= MeleeDistanceThreshold) { ZAnimInstance->Speed = 0; } //Enable the attack raycast sphere in zombies hand if the animation is valid if (ZAnimInstance->bEligibleForAttack) { Attack(); if (GetCharacterMovement()) { GetCharacterMovement()->MaxWalkSpeed = InitialMaxWalkSpeed; } } //Updates the alpha value if the zombie is dead to achieve over-time fade out if(!IsAlive()) { //Ticks the alpha reduction timeline AlphaReductionTimeline.TickTimeline(DeltaTime); }}
开发者ID:AbDoMoHaMmEd,项目名称:PortfolioSnippets,代码行数:32,
示例10: switchvoid CObjectSentrygun::SentryThink( void ){ switch( m_iState ) { case SENTRY_STATE_INACTIVE: break; case SENTRY_STATE_SEARCHING: SentryRotate(); break; case SENTRY_STATE_ATTACKING: Attack(); break; case SENTRY_STATE_UPGRADING: UpgradeThink(); break; default: Assert( 0 ); break; } SetContextThink( &CObjectSentrygun::SentryThink, gpGlobals->curtime + SENTRY_THINK_DELAY, SENTRYGUN_CONTEXT );}
开发者ID:MrBoomer568,项目名称:TF2Classic,代码行数:26,
示例11: CheckEventLostPlayervoid cAggressiveMonster::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk){ super::Tick(a_Dt, a_Chunk); if (m_EMState == CHASING) { CheckEventLostPlayer(); } else { CheckEventSeePlayer(); } if (m_Target == nullptr) { return; } cTracer LineOfSight(GetWorld()); Vector3d MyHeadPosition = GetPosition() + Vector3d(0, GetHeight(), 0); Vector3d AttackDirection(m_Target->GetPosition() + Vector3d(0, m_Target->GetHeight(), 0) - MyHeadPosition); if (TargetIsInRange() && !LineOfSight.Trace(MyHeadPosition, AttackDirection, static_cast<int>(AttackDirection.Length())) && (GetHealth() > 0.0)) { // Attack if reached destination, target isn't null, and have a clear line of sight to target (so won't attack through walls) StopMovingToPosition(); Attack(a_Dt); }}
开发者ID:Nakkar,项目名称:cuberite,代码行数:30,
示例12: switchvoid AIEnemyZombie::UseBrain(){ xtile = aiinput->GetXTilePos(); ytile = aiinput->GetYTilePos(); xpos = aiinput->GetXLoc(); ypos = aiinput->GetYLoc(); if(new_enemy){ new_enemy=false; //if( (aiinput->lower_patrol_x > 0) && (aiinput->upper_patrol_x > 0)) use_patrol_bounds = true; } switch(GetState()) { case AIS_CHASE: Chase(); break; case AIS_ATTACK: Attack(); break; case AIS_PATROL: Patrol(); break; case AIS_MOVE: MoveToXTile(movetoxtile); break; case AIS_WAIT: Wait(); break; }}
开发者ID:shoematt,项目名称:BladeofBetrayal,代码行数:35,
|