控制游戏的暂停:就是控制怪物的移动
输入switch,Tab 两下,在switch_on中按住Tab输入value,然后回车,自动补全
Enemy.cpp
#include "Public/AIEnemy.h"
AEnemy::AEnemy()
{
// 获得AI,设置好AIController
AIControllerClass = AAIEnemy::StaticClass();
}
// 是否移动
void AEnemy::SetMove(bool bMoveIt)
{
// 获得AI
AAIEnemy* AI = Cast<AAIEnemy>(AIControllerClass);
// 移动
if (bMoveIt)
{
// 找下一个点
AI->SearchNewPoint();
}
else
{
// 停止移动
AI->StopMove();
}
}
PacManGameModeBase.cpp
// 设置当前状态
void APacManGameModeBase::SetCurrentState(EGameState value)
{
currentState = value;
// 判断暂停等状态
// 输入switch,Tab 两下,在switch_on中按住Tab输入value,然后回车,自动补全
switch (value)
{
case EGameState::EPlaying:
// 遍历所有的敌人
for (auto Iter(Enemys.CreateIterator()); Iter; Iter++)
{
// 可以移动
(*Iter)->SetMove(true);
}
break;
case EGameState::EPause:
// 遍历所有的敌人
for (auto Iter(Enemys.CreateIterator()); Iter; Iter++)
{
// 不可以移动
(*Iter)->SetMove(false);
}
break;
case EGameState::EWin:
// 遍历所有的敌人
for (auto Iter(Enemys.CreateIterator()); Iter; Iter++)
{
// 销毁敌人
(*Iter)->Destroy();
}
break;
case EGameState::EGameOver:
// 遍历所有的敌人
for (auto Iter(Enemys.CreateIterator()); Iter; Iter++)
{
// 销毁敌人
(*Iter)->Destroy();
}
break;
default:
break;
}
}
void APacManGameModeBase::BeginPlay()
{
// 设置成菜单模式,开局有UI提示
SetCurrentState(EGameState::EMenu);
}