当您玩它时,播放两次
当这些升级中之一应用于卡片播放功能时,这些升级应与PlayFunction()
PlayFunction(){
formerPlayFunction()
millCard()
}
Effect
体现了播放卡的结果:
class Effect {
virtual ~Effect() {}
virtual void apply(context * ctx, Card & card) = 0;
};
卡片对象存储A
std::vector<unique_ptr<Effect>>
。 最初,此效果只是卡片的默认评分效果:
DefaultEffect
可能看起来像这样:
class DefaultEffect : public Effect {
virtual void apply(context * ctx, Card & card) {
ctx->score += card.value;
}
};
制造效果对象而不是普通功能指针可以使您产生状态效果。例如,“每次播放此卡的价值都会上升一个”或“只能使用5次效果”。
上面建议的loop loop只是为了入门,您可以通过从
for
中返回有意义的东西来使事情变得像您想要的复杂(例如,代价值可以停止处理效果或实际重新启动效果)