找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 436|回复: 0

[教程] 一点小小的debug心得

[复制链接]
发表于 2024-1-7 14:33:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
感谢黑凤梨大佬的帮忙解决了许多疑难问题,同时在debug上有了一点小小的心得。
于是把整个debug的过程详细写下来,就当作一次心得记录吧。

发现bug的起因:在测试角色语音的时候,发现历史记录里只有最新一条记录能回放语音,其他记录的回放按钮全部消失不见了
QQ图片20240107141317.png

自己鼓捣了许久界面代码也没解决问题,于是在群里向大佬们提问,群里马上有大佬提供了黑凤梨大佬的专栏文章【[Ren'py 教程] 超简单在历史页面播放语音功能】
经过对比代码发现自己实现功能的代码和文章里的大同小异,哪怕全部Copy下来也依旧无法解决问题。
这时经大佬提点,新建了一个新工程,将旧工程的各种文件一步一步转移到新工程中,
最开始将素材和与历史记录界面有关的代码转移之后,启动新工程发现bug消失了。
于是进行关键的第二步:每转移一个剩下重要的相关代码文件就启动新工程观察bug是否复现。
直到锁定某个代码文件能复现bug后再精确地锁定到某一行。
最后发现是这么一句代码导致了bug
[RenPy] 纯文本查看 复制代码
    define narrator = Character("",ctc="ctc",ctc_position="nestled")


这个代码功能是在每句旁白文字末尾增加ctc动画
把这句话注释之后,历史记录里每句有语音的对话都能进行回放语音了
将这个情况在群里说了之后
黑凤梨大佬提议将代码改成
[RenPy] 纯文本查看 复制代码
    define narrator = Character(None,ctc="ctc",ctc_position="nestled")

即将""空字符改成None,
改后果然bug被解决了。

经过这么一个小小的debug经历,得出了几个小小的心得:
1. 出现bug之后自己解决不了要找大佬问问题的时候,一定要把自己的问题说清楚,最好附上相关代码
2. 如果有已经实现了的正确功能的代码,可以用Beyond Compare等字符对比工具将自己的代码与正确代码进行比较来检查自己的代码哪里有错误
3. 如果当前代码没错误,那可能是其他地方的设置导致了bug,可以通过各种方法(比如新建工程)来锁定导致bug的代码段
4. 群里的大佬都很厉害的,只要能把问题说清楚,就算当时解决不了问题,最后也一定能找到解决问题的方向

最后再次感谢给自己提供各种帮助的大佬们!







您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号|苏公网安备 32092302000068号 )

GMT+8, 2024-12-22 19:49 , Processed in 0.122616 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表