我在用QT做一个2D游戏,主要用到了QGraphicsItem,QGraphicsScene和QGraphicsView这几个类。重写了QGraphicsScene的mousePressEvent,每单击一下鼠标左键,就往Scene里添加一个Item。重写了QGraphics的advance(),每个Item都在Scene上运动,同时还会调用scene()->itemAt()进行碰撞检测。在没有碰撞检测的时候,不管添加多少个Item,CPU利用率也只有0%到2%,Item的运动也很流畅,这没问题。 但是进行碰撞检测后,仅仅只是几个Item,CPU利用率也会达到10%左右。而且随着Item数目的增加,CPU利用率很快就达到30%。到了30%左右之后,不管再怎么添加Item,CPU的利用率都没法再上去,而Item的运动却变得越来越卡,电脑也越来越热。这是为什么呢? Item运动卡是因为CPU利用率低吗? 怎么让上百个Item在进行碰撞检测时还能运动流畅?(我的timer每15ms发射一次timeout信号)。