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



Pdf көрінісі
бет62/252
Дата06.01.2022
өлшемі12,25 Mb.
#11940
1   ...   58   59   60   61   62   63   64   65   ...   252
Пример – Player 
Определите  С++  данные  struct  для  объекта  Player.  Затем,  создайте  экземпляр 
вашего класса Player и заполните каждый элемент значениями.  
Решение 
Давайте  объявим  наш  объект  Player.  Мы  хотим  всё  сгруппировать  вместе  для 
игрока  внутри  объекта  Player.  Мы  делаем  это  так,  чтобы  код  был  аккуратным  и 
опрятным.  Код,  который  вы  читаете  в  Unreal  Engine  будет  использовать  такие 
объекты повсюду. Так что будьте внимательны: 
struct Player 

string name; 
int hp; 
Vector position; 
}; // 
Не забудьте эту точку с запятой в конце! 
int main() 

// 
создаём объект типа Player, 
Player me; // 
экземпляру дано имя 'me' 
me.name = "William"; 
me.hp = 100.0f; 
me.position.x = me.position.y = me.position.z=0; 
}
 


45 | 
С т р а н и ц а
 
 
Определение struct Player это то, что говорит компьютеру, как расположен объект 
Player в памяти. 
Совет 
Я  надеюсь,  вы  заметили  обязательность  точки  с  запятой  в  конце  объявления 
структуры  (struct).  Объявлениям  объекта  struct,  нужно  иметь  точку  с  запятой  в 
конце, а функциям нет. Это просто правило С++, которое вы должны запомнить.  
Внутри  объекта  Player,  мы  объявили  строковый  тип  для  имени  игрока,  тип  с 
плавающей точкой для его hp и объект Vector для полных положений x, y, z.  
Когда  я  говорю  объект,  я  имею  в  виду  С++  struct  (или  позже  мы  введём  термин 
класс). 
Погодите! Мы поместили объект  Vector внутри объекта  Player! Да, мы можем так 
делать.  
После  определения  того,  что  имеется  внутри  объекта  Player,  мы  и  создаём 
экземпляр объекта Player, именуемый me и присваиваем ему значения. 
После присвоения значений, объект me выглядит, так как показано на следующем 
изображении: 
 
Указатели 
Особенно  мудрёным  принципом  для  постижения,  является  принцип  указателей. 
Указатели  не  так  трудны  для  понимания,  но  может  потребоваться  время,  чтобы 
разобраться с ними.  
Скажем, у нас в памяти есть, как и до этого, объявленная переменная типа Player: 
Player me; 
me.name = "William"; 
me.hp = 100.0f;
 


46 | 
С т р а н и ц а
 
 
Сейчас мы объявляем указатель к Player: 
Player* ptrMe; 
                                      // Объявление указателя 
Знак  *  обычно  придаёт  особенность.  В  данном  случае  знак  *  делает  особенным 
ptrMe
. Знак звёздочка *, является тем, что делает 
ptrMe 
типом указатель.   
 Сейчас мы хотим связать 
ptrMe 
к
 
m
e
:
 
ptrMe = &me;                              // 
СВЯЗЫВАНИЕ 
Совет 
Этот шаг связывания очень важен. Если вы не привяжите указатель к объекту перед 
использованием этого указателя, то у вас будет нарушение с получением доступа в 
памяти.  
Сейчас 
ptrMe
 ссылается на тот же объект что и me. Изменение 
ptrMe 
изменит и
 me

как показано на следующем изображении: 
 
 


Достарыңызбен бөлісу:
1   ...   58   59   60   61   62   63   64   65   ...   252




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

    Басты бет