1

我正在通过 kryonet 发送一些仅包含“实体”变量的数据包。我自己创建了实体类。问题是在注册实体类时,服务端和客户端的类文件并不完全相同。

在客户端,我没有包含一些方法,因为它们依赖于访问仅服务器端的变量,并且我完全删除了所有构造函数,因为客户端不会是创建实体的那个,服务器会。在服务器范围内,我省略了渲染方法,因为服务器不会渲染。

有什么方法和构造函数真的很重要吗?kryonet 是否只查看变量是否相同(因为它们是相同的)?谢谢!

顺便说一句,如果您想知道,Entity 是一种抽象方法,因此当我创建新类型的实体(例如“Player”)时,它们会扩展它并添加更多方法和变量。我希望也可以将它们发送到一个数据包中。

4

1 回答 1

0

我不确定你在问什么,但据我所知,我会尽力回答你的问题。

所以我认为你想要做的是你有一个名为 Entity 的基类,并将它扩展到不同的类。您在类中实现了一些方法,这些方法将发送到客户端,一些方法将发送到服务器。

因此,正如您所问的那样,那里有什么方法和构造函数是否重要,答案是否定的。直到你有一个空的构造函数(Kryo 序列化程序需要),kryonet 对你拥有的任何构造函数都很好。只是你需要确保你有一个空的构造函数。我在 kryonet 中有很多类,有两个以上的构造函数,它们工作得很好。

提示,因为您在网络上发送数据,如果我是您,我会删除所有不会在客户端中使用的数据变量,并进一步抽象出类。

另外,您为什么要在类中发送方法?只是好奇。我认为您应该在服务器和客户端中有方法,并且应该从数据包(类)中取出数据,然后将其发送到服务器或客户端中的方法。

如果有任何不清楚的地方,请告诉我。

于 2015-05-16T20:31:10.313 回答