Упражнения
1. Добавьте имя функции UPROPERTY для имени NPC, чтобы имя NPC был
редактируемым в схеме (blueprint), подобно сообщению, которое есть у NPC
для игрока. Покажите имя NPC в выводе на экран.
2. Добавьте функцию (напишите
UTexture2D*
) для лицевой текстуры NPC.
Вставьте лицо NPC рядом с его сообщением в выводе.
3. Визуализируйте на экране НР игрока как панель (заполненный
прямоугольник).
Решения
Добавьте это свойство к классу ANPC:
//
Это имя NPC
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = NPCMessage)
FString name;
Затем, в
ANPC::Prox_Implementation
, смените строку переданную в HUD на:
name + FString(": ") + message
Таким образом, имя NPC будет добавлено в сообщение.
Добавьте это свойство к классу ANPC:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = NPCMessage)
UTexture2D* Face;
Затем вы можете выбрать изображения лиц, чтобы прикрепить к лицу NPC в схеме
(blueprint).
Прикрепите текстуру к вашему struct Message:
UTexture2D* tex;
Чтобы визуализировать на экране эти изображения, вам нужно добавить вызов
DrawTexture()
с нужной текстурой переданной в неё:
DrawTexture( messages[c].tex, x, y, messageH, messageH, 0, 0, 1, 1 );
Обязательно
проверьте
рабочая ли текстура, перед тем
как
визуализировать
её.
Изображения
должны
выглядеть подобно тому, что
показано здесь, вверху экрана:
184 |
С т р а н и ц а
Это то, как функция изображает оставшееся здоровье игрока в форме полосы:
void AMyHUD::DrawHealthbar()
{
//
Изображаем полосу здоровья.
AAvatar *avatar = Cast (
UGameplayStatics::GetPlayerPawn(GetWorld(), 0) );
float barWidth=200, barHeight=50, barPad=12, barMargin=50;
float percHp = avatar->Hp / avatar->MaxHp;
DrawRect( FLinearColor( 0, 0, 0, 1 ), Canvas->SizeX - barWidth - barPad
- barMargin, Canvas->SizeY - barHeight - barPad - barMargin, barWidth +
2*barPad, barHeight + 2*barPad );
DrawRect( FLinearColor( 1-percHp, percHp, 0, 1 ), Canvas->SizeX -
barWidth - barMargin, Canvas->SizeY - barHeight - barMargin,
barWidth*percHp, barHeight );
}
Выводы
В этой главе, прошли много материала. Мы показали вам, как создавать персонажа
и отображать его на экране, управлять вашим персонажем с помощью привязок
осей, и как создавать и отображать NPC, который может передавать сообщения на
HUD.
В дальнейших главах, мы будем развивать нашу игру дальше, добавляя Систему
Инвентаризации и Подбор Предметов в Главе 10, а также код и концепцию
подсчёта того что есть у игрока. Но перед этим, мы тщательней объясним
некоторые типы контейнеров UE4 в Главе 9. Шаблоны и обычно используемые
контейнеры.
Достарыңызбен бөлісу: |