16、编程调试与标准输入输出操作指南

编程调试与标准输入输出操作指南

一、编程调试技巧

1.1 功能显示问题

在编程过程中,有时会遇到某个功能本应显示一段时间,但却始终不显示的情况。例如,原本要显示的特效一直不出现。以下是一段可能存在问题的代码示例:

while (SSDL_IsNextFrame ())
{
    ...
    if (mouseClick)
    {
        framesLeftTillSplatDisappears = SPLAT_LIFETIME;
        while (framesLeftTillSplatDisappears > 0)
        {
            //display the splat
            --framesLeftTillSplatDisappears;
        }
    }
    ...
}

这段代码的问题在于,特效显示得太快,在 1/60 秒内就完成了所有显示,以至于用户根本看不到。这是因为没有适应事件驱动的思维方式,我们不希望程序一次性完成特效的所有显示,然后进入下一帧,而是希望设置好显示,让帧在其他事情发生的同时流逝,包括让用户看到特效。

一个好的经验法则是,避免在主动画循环中循环执行需要时间的操作。只需设置好操作,让主循环在后续帧中更新它。另外,将主循环的各个部分分开处理,如先处理事件,再进行显示,最后进行更新。以下是修复后的代码:

while (SSDL_IsNextFrame ())
{
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值