5595人加入学习
(18人评价)
【旧版】Unreal初级课程 - 3D吃豆人

旧版课程,制作完成于2018-03-29,基于Unreal 4.18

价格 免费

控制游戏的暂停:就是控制怪物的移动

输入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);
}

 

[展开全文]

授课教师

SIKI学院老师

课程特色

图文(1)
下载资料(1)
视频(30)