gpt4 book ai didi

c++ - 在服务器和客户端之间使用相同的数据

转载 作者:搜寻专家 更新时间:2023-10-31 00:34:28 25 4
gpt4 key购买 nike

我正在设计一款仅限网络的游戏。我想在服务器端和客户端之间共享存储在 C++ 类中的游戏数据。

这样做的好处是可以将数据放在同一个地方,从而简化维护。但是,我有一个问题类设计是因为:

  1. 在服务器端只需要逻辑
  2. 在客户端,您想绘制、渲染等

换句话说,我不想在服务器上安装图形库,反之亦然。

类可能如下所示:

class Fire : public Spell {
private:
/* some data */

public:
void execute(Player &p)
{
// call server actions
}

void draw(Player &p)
{
// call rendering and such
}
};

Execute 是服务端的功能,draw 是客户端的功能。我真的不想用宏来确定数据在哪一边,因为它往往很难看且无法维护。

我正在寻找一种设计良好的方法来实现这一点。

你会做什么/用什么?

最佳答案

我认为你应该得出你需要拆分类的结论并从 Spell 开始创建两个类:

//put here all common spell things
class Spell{
};

//add to spell the server logic
class SpellLogic: public Spell{
public:
virtual void execute(Player &p);
};

//add here the client graphic
class SpellGraphic: public Spell{
public:
virtual void draw(Player &p);
};

每个法术推导将被分成两部分。

客户端将使用图形类,服务器将使用逻辑。

关于c++ - 在服务器和客户端之间使用相同的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25971441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com