gpt4 book ai didi

java - 如何为 Array<> 编写序列化器?

转载 作者:行者123 更新时间:2023-12-01 12:08:58 24 4
gpt4 key购买 nike

我不知道如何解决这个问题。我需要为 Array<> 编写一个序列化器在 libgdx 中找到对象。

public static void initialize(Server server) {
Kryo kryo = server.getKryo();
kryo.register(ServerData.class);
kryo.register(PlayerNick.class);
kryo.register(MoveLeft.class);
kryo.register(MoveRight.class);
kryo.register(MoveUp.class);
kryo.register(MoveDown.class);
kryo.register(StandUp.class);
kryo.register(ButtonLeft.class);
kryo.register(ButtonRight.class);
//
kryo.register(PlayerData.class);
kryo.register(Vector2.class);
kryo.register(Array.class);
kryo.register(PlayerDataPacket.class);
}
public static void initialize(Client client) {
Kryo kryo = client.getKryo();
kryo.register(ServerData.class);
kryo.register(PlayerNick.class);
kryo.register(MoveLeft.class);
kryo.register(MoveRight.class);
kryo.register(MoveUp.class);
kryo.register(MoveDown.class);
kryo.register(StandUp.class);
kryo.register(ButtonLeft.class);
kryo.register(ButtonRight.class);
//
kryo.register(PlayerData.class);
kryo.register(Vector2.class);
kryo.register(Array.class);
kryo.register(PlayerDataPacket.class);
}
public static class PlayerData {
public String name;
public int id;
public Vector2 position;
}

public static class PlayerDataPacket {
public Array<PlayerData> playerList = new Array<PlayerData>();
}

这就是我通常的序列化的完成方式。在这里,我需要为 PlayerDataPacket 编写一个自定义序列化器.

我发现了这个:https://groups.google.com/forum/#!topic/kryonet-users/9z4Ix2JO7JA但它似乎已经过时了,因为它找不到一些方法,而且它没有说明如何使用 Array<> 来做到这一点.

最佳答案

我在这里编写了一个使用 KryoNet 通过网络发送 float 组的示例:

https://stackoverflow.com/a/24339801/2413303

 Server server = new Server();
Kryo kryo = server.getKryo();
kryo.register(float[].class);
server.start();
server.bind(2300, 2301);
server.addListener(new Listener() {
public void received(Connection connection, Object object)
{
if(object instanceof float[])
{
float[] array = (float[])object;
for(int i = 0; i < array.length; i++)
{
System.out.println("" + array[i]);
}
}
}});
Client client = new Client();
Kryo kryo = client.getKryo();
kryo.register(float[].class);
client.addListener(new Listener() {
public void connected(Connection connection)
{
connection.sendTCP(new float[] {5, 6, 7, 8});
}
};
client.connect(5000, "127.0.0.1”, 2300, 2301);

关于java - 如何为 Array<> 编写序列化器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27380369/

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