c++ 制作一个npc状态机包含创建于和销毁
一个简单的C++ NPC状态机的实现如下:
- 定义NPC类,包含NPC的属性和方法:
class NPC {
private:
int state; // NPC的状态,0为待机状态,1为攻击状态,2为逃跑状态,3为死亡状态
int health; // NPC的生命值
public:
NPC(); // 构造函数
~NPC(); // 析构函数
void setState(int newState); // 设置NPC的状态
void update(); // 更新NPC的状态
};
- 实现NPC类的构造函数和析构函数:
NPC::NPC() {
state = 0; // 初始状态为待机状态
health = 100; // 初始生命值为100
cout << "NPC created!" << endl;
}
NPC::~NPC() {
cout << "NPC destroyed!" << endl;
}
- 实现NPC类的状态设置和状态更新方法:
void NPC::setState(int newState) {
state = newState;
}
void NPC::update() {
switch(state) {
case 0: // 待机状态
cout << "NPC is idle." << endl;
break;
case 1: // 攻击状态
cout << "NPC is attacking." << endl;
break;
case 2: // 逃跑状态
cout << "NPC is fleeing." << endl;
break;
case 3: // 死亡状态
cout << "NPC is dead." << endl;
break;
default:
cout << "Invalid state!" << endl;
break;
}
}
- 在主函数中创建和销毁NPC对象:
int main() {
NPC* npc = new NPC(); // 创建NPC对象
npc->setState(1); // 设置NPC状态为攻击状态
npc->update(); // 更新NPC状态
delete npc; // 销毁NPC对象
return 0;
}
输出结果为:
NPC created!
NPC is attacking.
NPC destroyed!
注意:在销毁NPC对象时要使用delete关键字,否则会导致内存泄漏。
原文地址: http://www.cveoy.top/t/topic/bD71 著作权归作者所有。请勿转载和采集!