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



Pdf көрінісі
бет171/252
Дата06.01.2022
өлшемі12,25 Mb.
#11940
1   ...   167   168   169   170   171   172   173   174   ...   252
Подсказка 
Объект Controller и функции 
AddMovementInput
 определены в базовом классе 
APawn

Поскольку  класс 
Avatar
  происходит  от 
ACharacter
,  который  в  свою  очередь 
происходит  от   
APawn
,  мы  можем  свободно  пользоваться  всеми  функциями-
членами  в  базовом  классе 
APawn
.  Теперь  вы  видите  красоту  наследования  и 
повторного использования кода? 
 


169 | 
С т р а н и ц а
 
 
Упражнения 
Добавьте привязки осей и  функции С++, чтобы двигать игрока влево и назад.  
Примечание 
Вот подсказка: вам нужно только добавить привязки осей, если вы понимаете, что 
идти назад это негатив ходьбы вперёд.  
Решение 
Введите две дополнительные привязки осей, перейдя в Settings | Project Settings… 
Input, как показано здесь: 
 
В поле ввода Scale для S и A введите -1.  Это инвертирует ось. Так что при нажатии 
клавиши S в игре, игрок будет идти назад. Попробуйте! 
 Альтернативно,  вы  можете  определить  две  совсем  раздельные  функции-члены  в 
вашем  классе 
AAvatar
,как  показано  далее  и  привязать  клавиши  A  и  S  к 
AAvatar::MoveLeft
 и 
AAvatar::MoveBack
, соответственно: 
void AAvatar::MoveLeft( float amount ) 

     if( Controller && amount ) 

FVector left = -GetActorRightVector(); 


170 | 
С т р а н и ц а
 
 
AddMovementInput(left, amount); 

} void AAvatar::MoveBack( float amount ) 

if( Controller && amount ) 

FVector back = -GetActorForwardVector(); 
AddMovementInput(back, amount); 




Достарыңызбен бөлісу:
1   ...   167   168   169   170   171   172   173   174   ...   252




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

    Басты бет