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



Pdf көрінісі
бет81/252
Дата06.01.2022
өлшемі12,25 Mb.
#11940
1   ...   77   78   79   80   81   82   83   84   ...   252
Solution Explorer скрыт, просто щёлкните по View/ Solution Explorer вверху меню.  
В  этом  файле,  прокрутите  вниз  до  конца,  где  вы  найдёте  секцию,  начинающуюся 
следующим образом: 
void APuzzleBlock::BlockClicked(UPrimitiveComponent* ClickedComp) 
 
 
APuzzleBlock
 – это имя класса, а 
BlockClicked
 – это имя функции. Когда вы щёлкаете 
по  блоку  пазла,  запускается  секция  кода  начинающаяся  с  {  и  заканчивающаяся  }. 
Надеемся, что манера, в которой это происходит, прояснит что то дальше.  
Это напоминает манеру оператора if. Если деталь пазла была нажата, то эта часть 
кода запускается для этого элемента пазла.  
Мы пройдём каждый шаг для смены цвета блока после щелчка по нему (так второй 
щелчок будет менять цвет обратно с жёлтого на голубой).  
Выполните следующие шаги с максимальным вниманием: 
1.  Откройте  файл  PuzzleBlock.h.  После  строки  25  (на  которой  находится  этот 
код): 


64 | 
С т р а н и ц а
 
 
/** 
Указатель на жёлтый материал используется на активных блоках */ 
UPROPERTY() 
class UMaterialInstance* OrangeMaterial; 
Введите следующий код, после предыдущей строки кода: 
UPROPERTY() 
class UMaterialInstance* BlueMaterial; 
2.  Теперь,  откройте  файл  PuzzleBlock.ccp.  После  строки  40  (на  которой 
находится этот код): 
// 
Сохраните указатель на жёлтый материал 
OrangeMaterial = ConstructorStatics.OrangeMaterial.Get(); 
Введите следующий код, после предыдущей строки кода: 
BlueMaterial = ConstructorStatics.BlueMaterial.Get(); 
3.  Наконец,  в  PuzzleBlock.ccp  замените  содержание  секции  кода  (строка  44) 
APuzzleBlock::BlockClicked 
на следующий код: 
void APuzzleBlock::BlockClicked(UPrimitiveComponent* ClickedComp) 

// --
ЗАМЕНЯЙТЕ ОТСЮДА-- 
bIsActive = !bIsActive; // flip the value of bIsActive 
// (
если это было true, то станет false или наоборот) 
if ( bIsActive ) 

BlockMesh->SetMaterial(0, OrangeMaterial); 

else 

BlockMesh->SetMaterial(0, BlueMaterial); 

// 
Сообщите Grid (сетку) 
if(OwningGrid != NULL) 

OwningGrid->AddScore(); 

// --
ДО СЮДА-- 
}
 


Достарыңызбен бөлісу:
1   ...   77   78   79   80   81   82   83   84   ...   252




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

    Басты бет