gpt4 book ai didi

haxe - 序列化有效但反序列化崩溃

转载 作者:行者123 更新时间:2023-12-03 07:48:29 25 4
gpt4 key购买 nike

我正在尝试在 HaxeFlixel 游戏中设置保存功能。

一些背景:有问题的对象是 Player 的一个实例,它扩展了 FlxSprite。保存数据存储在我为其创建的自定义类的实例中。该实例存储在 StringMap 中(键是保存名称),通过将其序列化为 FlxSave 中的变量来保存。

创建保存数据并写入它工作正常。但是,读回保存数据会使游戏崩溃,并显示消息“无效字段:像素”。 pixels 是 Fl​​xSprite 中的一个字段,但它不是序列化字符串中的第一个此类字段,因此可能不是那个字段。

如果有用的话,该字段的声明是 y6:pixelsn - 即:

  • y 开始一个名为...的字段
  • 6:长度为6的字符串...
  • 像素(字符串)
  • n

最佳答案

来自this line of code您可以看到,像素在运行时实际上不是变量*。因此,当反序列化器尝试为像素赋值时,它会崩溃。但需要更多调查为什么序列化器首先序列化 pixels 字段,因为它不应该在运行时真正存在。

注意*:pixels 的访问器是 (get, set),这使得 pixels 在运行时不是一个真实的属性。了解更多 here .

作为一般规则,我不建议直接序列化 FlxSprite (或其他复杂对象)。相反,您应该提取所需的信息(例如 x/y 位置或 hp 等)并仅序列化这些信息。

关于haxe - 序列化有效但反序列化崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31223315/

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