Изучаем С++ создавая игры в ue4 Уилльям Шериф Изучайте программирование С++ с интересным применением реально мира, что позволит вам создавать ваши собственные игры!



Pdf көрінісі
бет181/252
Дата06.01.2022
өлшемі12,25 Mb.
#11940
1   ...   177   178   179   180   181   182   183   184   ...   252
Упражнения  
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.  Шаблоны  и  обычно  используемые 
контейнеры
   


Достарыңызбен бөлісу:
1   ...   177   178   179   180   181   182   183   184   ...   252




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет