2013-04-28 1 views
6

Я просмотрел новые функции Qt5 и Qt Quick и не совсем понимаю, как он отличается от функции Graphics View Framework (QGraphicsScene). Он использует QML, но помимо этого:Qt Quick vs Graphics View Framework (QGraphicsScene)

  1. Может ли Qt Quick сделать то, что QGraphicsScene не может? Например, particle effects.
  2. Быстро ли Qt быстрее, чем QGraphicsScene? «Быстрее» означает больше FPS при отображении 1000 движущихся элементов?

Я делаю игру защиты башни и использую QGraphicsScene, и теперь я задаюсь вопросом, следует ли мне переключиться на Qt Quick.

ответ

7

Qt5 и Qt Quick 2 должны дать хороший прирост производительности благодаря «графику сцены», который является базовым движком и в основном написан с нуля для Qt Quick of Qt5, чтобы в полной мере использовать OpenGL и иметь высокий кадр как цель дизайна с самого начала.

В дополнение к производительности, я считаю, что это считается большой особенностью, что вы можете описать GUI, переходы, анимации и все такое, что намного лучше с QML. Есть некоторая кривая обучения, написание декларативного кода GUI сильно отличается от написания более прямого кода на C++ для выполнения подобных действий, но это того стоит.

В Qt4 я не думаю, что QML собирается предоставить какое-либо преимущество в форме, так как я думаю (теперь не проверял) там написано на самом деле QGraphicsView.

Итак, подведем итоги: перейдите на Qt5 и Qt Quick2 и изучите QML для определения GUI. Иметь логику игры на C++ для производительности (игры с защитой башни могут иметь довольно много вещей, происходящих в крайнем случае).

Edit: Блог (старый это может быть немного устарели в деталях) о том, почему тогда была создана реализация графа сцены: http://blog.qt.io/blog/2011/05/31/qml-scene-graph-in-master/

+0

Можете ли вы предоставить какие-либо контрольные или надежные источники, которые показывают увеличение производительности _scene graph_ сравнению to _graphics view_? – problemofficer

+0

@problemofficer Возможно, я добавил ссылку на старый блог, который имеет один контрольный график, который показывает Qt4 QML1 и Qt5 QML2 fps разницу для одного случая. – hyde