Написаниефункции CastSpell аватара Мы применим предыдущий график вызова в обратном порядке. Мы начнём с
написания функции, которая собственно посылает заклинание в игре,
AAvatar::CastSpell(), как показано в следующем коде:
void AAvatar::CastSpell( UClass* bpSpell )
{
//
создаём экземпляр заклинания и прикрепляем его к персонажу
ASpell *spell = GetWorld()->SpawnActor(bpSpell, FVector(0),
FRotator(0) );
if( spell )
{
spell->SetCaster( this );
}
else
{
GEngine->AddOnScreenDebugMessage( 1, 5.f, FColor::Yellow, FString("
заклинание не
послать ") + bpSpell->GetName() );
}
}
Вы можете обнаружить, что сам вызов заклинания примечательно прост. Тут два
базовых шага, чтобы посылать заклинание:
Создайте экземпляр объекта заклинания, используя функцию мирового
объекта SpawnActor (породить актора)
Прикрепите его к аватару
Как только экземпляр объекта заклинания создан, его функция Tick() будет
запускаться каждый кадр, когда это заклинание в уровне. Каждый раз при Tick(),
объект Spell будет автоматически находить монстров в пределах уровня, и
наносить им урон. С каждой строкой кода упомянутой ранее происходит многое,
так что давайте обсудим каждую строку в отдельности.