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


Список предметов для инвентаря игрока



Pdf көрінісі
бет189/252
Дата06.01.2022
өлшемі12,25 Mb.
#11940
1   ...   185   186   187   188   189   190   191   192   ...   252
Список предметов для инвентаря игрока 
Скажем,  мы  захотели  создать  структуру  данных  С++,  чтобы  хранить  список 
предметов  для  инвентаря  игрока.  В  левом  столбце  таблицы  (ключи),  у  нас  будет 
FString для названия предметов. В правом столбце (значения), у нас будет  int для 
количества этих предметов.  
Предмет (Ключ)  Количество (Значение) 
яблоки 

пончики 
12 
мечи 

щиты 

Чтобы воплотить это в коде, мы просто пишем следующее: 
TMap items; 
items.Add( "
яблоки", 4 ); 
items.Add( "
пончики", 12 ); 
items.Add( "
мечи", 1 ); 
items.Add( "
щиты", 2 );
 


193 | 
С т р а н и ц а
 
 
Как  только  вы  создали  ваш  TMap,  вы  можете  иметь  доступ  к  значениям  внутри 
TMap,  используя  квадратные  скобки  и  передавая  ключ  в  скобках.  Например,  в 
карте items - предметы, в предыдущем коде, items[ "яблоки" ] это 4.  
Подсказка 
UE4  выйдет  из  строя,  если  вы  используете  квадратные,  чтобы  получить  доступ  к 
ключу, которого ещё нет в карте. Так что будьте осторожны! А STL C++ не выходит 
из строя, если вы делаете это.    
Итерация TMap 
Чтобы итерировать TMap, мы конечно используем итератор: 
for( TMap::TIterator it = items.CreateIterator(); it; ++it ) 

GEngine->AddOnScreenDebugMessage( count++, 30.f, FColor::Red, it->Key + FString(": ") + 
FString::FromInt( it->Value ) ); 
}
 
Итераторы TMap немного отличаются от итераторов TArray и TSet. Итератор TMap 
содержит и Ключ и Значение. Мы можем получить к ключу внутри TMap с it->Key и 
к значению с it->Value.  


194 | 
С т р а н и ц а
 
 
 


Достарыңызбен бөлісу:
1   ...   185   186   187   188   189   190   191   192   ...   252




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

    Басты бет