【问题】为什么GameMaker: Studio中使用sprite_save()等函数无效? 已解决
摸魔抹莫 发表于 2020-04-16 06:40:40 342

在GameMaker: Studio中使用sprite_save()和background_save(),以及它们的延伸函数sprite_save_strip()等保存在编辑时创建的精灵、背景图,均不会在 %localappdata%\游戏名 文件夹内产生图片文件,而使用screen_save()或surface_save(),以及用sprite_save()保存使用sprite_create_from_surface()等动态创建的精灵却可以正常在该处写出文件。 阅读F1帮助文档中关于sprite_save()函数介绍以及文件系统限制的部分后也没有找到原因。 请问是什么原因?能否解决?

附件已上传。

2020.4.17 更新 问题修改为已解决,感谢网友cube的协助。 附件已删除。 GMS1和GMS2的sprite_save()函数无法保存在编辑时创建的精灵,如尝试保存,则会在控制台输出以下信息:

sprite_save() failed - no bitmap data available

sprite_save()和background_save()等函数以及它们的变体都有这种性质。如确实需要保存在编辑时创建的精灵,一般的解决方法是:

var _sprite = sprite_duplicate(...);
sprite_save(_sprite, ...);
sprite_delete(_sprite);

F1帮助文档中没有对这些信息的说明,应属于软件开发者的失误。

最后于 3月前 被摸魔抹莫编辑 ,原因: 问题已解决
最新回复 (0)