编程调试与标准输入输出操作指南
一、编程调试技巧
1.1 功能显示问题
在编程过程中,有时会遇到某个功能本应显示一段时间,但却始终不显示的情况。例如,原本要显示的特效一直不出现。以下是一段可能存在问题的代码示例:
while (SSDL_IsNextFrame ())
{
...
if (mouseClick)
{
framesLeftTillSplatDisappears = SPLAT_LIFETIME;
while (framesLeftTillSplatDisappears > 0)
{
//display the splat
--framesLeftTillSplatDisappears;
}
}
...
}
这段代码的问题在于,特效显示得太快,在 1/60 秒内就完成了所有显示,以至于用户根本看不到。这是因为没有适应事件驱动的思维方式,我们不希望程序一次性完成特效的所有显示,然后进入下一帧,而是希望设置好显示,让帧在其他事情发生的同时流逝,包括让用户看到特效。
一个好的经验法则是,避免在主动画循环中循环执行需要时间的操作。只需设置好操作,让主循环在后续帧中更新它。另外,将主循环的各个部分分开处理,如先处理事件,再进行显示,最后进行更新。以下是修复后的代码:
while (SSDL_IsNextFrame ())
{
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



