我正在为一个大学项目用 C++(使用 SDL)构建一个游戏,我试图弄清楚如何编写当玩家做某事或经过一段时间等时发生的事件。
我对如何做到这一点有一个想法,但我不想反对它通常是如何做到的。
现在我有一个名为 Obj 的类,其中敌人、物品和玩家是子类,我的想法是向它添加 3 个公共变量,如下所示:
class Obj{
int eventDeath,eventTouch,eventTalk,eventMeet;
}
然后我可以创建一个带有 eventDeath=1 的 Obj,当它死亡时它会触发 event(1)。event() 会是这样的:
void event(int n){
switch(n){
case 1:
dialog("I'm dying");
break;
}
}
当玩家走过某个地方时,我还可以在特定位置添加不可见的“Obj”。我不知道这是否是一个好主意,但我想不出其他方法来做到这一点。一般是怎么做的?另外,我如何跟踪已经发生的事件?