zoukankan      html  css  js  c++  java
  • 使用QT + cocos2dx制作工具

    最近项目中使用到cocos2d-x,因为需要,决定做做工具

    开始想法是MFC + OpenGL, 但是感觉完全脱离了cocos2dx, 工具又要用到cocos2dx的一些东西

    后来看到了 http://blog.csdn.net/honghaier/article/details/7897077

    实现了 MFC + cocos2d-x, 但是MFC很久没用了,感觉真心不适应,每次写MFC,感觉都像第一次写一样

    这次决定尝试下QT

    QT的实现基本和上面MFC的类似, 参考QT的例子,实现一个window

    1 void Window::initcocos2d()
    2 {
    3     cocos2dApp = new AppDelegate;
    4     HWND hWnd = (HWND)this->winId();    // 关键, QWidget 与 HWND 的转换
    5     CCApplication::sharedApplication().run(hWnd, TEXT("Hello"), 480, 320);
    6 }

    用一个定时器去刷新

     1 void Window::renderCocos2dx(void)
     2 {
     3     CCApplication::sharedApplication().renderWorld();
     4 }
     5 
     6 Window::Window(QWidget *parent)
     7     :QWidget(parent)
     8 {
     9     QTimer *timer = new QTimer(this);
    10     connect(timer, SIGNAL(timeout()), this, SLOT(renderCocos2dx(void)));
    11     timer->start(20);
    12 
    13     setWindowTitle(tr("Hello GL"));
    14 }

    这里要用到qt的SIGNAL and SLOT

    头文件 window.h

    1 // window.h
    2 class Window : public QWidget
    3 {
    4    Q_OBJECT   // 如果使用自定义 slots, 这个必须定义
    5 private slots:
    6    void  renderCocos2dx(void);

    这里还得使用到QT安装目录bin下的moc.exe, 在命令行下 moc window.h -o moc_window.cpp

    将生成的moc_window.cpp加入工程,否则会有一堆错误

    关闭时要销毁, 重载 void closeEvent(QCloseEvent *);

    1 void Window::closeEvent(QCloseEvent *event)
    2 {
    3     cocos2d::CCDirector::sharedDirector()->end();
    4     cocos2d::CCDirector::sharedDirector()->mainLoop();
    5 
    6     QWidget::closeEvent(event);
    7 }

    至于鼠标时间, 重载

    1     /*virtual*/ void mousePressEvent(QMouseEvent *);
    2     /*virtual*/ void mouseReleaseEvent(QMouseEvent *);
    3     /*virtual*/ void mouseDoubleClickEvent(QMouseEvent *);

    并修改 CEGLView_win32 添加对应处理鼠标事件的函数就OK

  • 相关阅读:
    Google 面试准备清单
    Two sorted array. Find kth smallest element, 要求O(logK)
    MVC(demo)
    UE4学习心得:Scene Component蓝图的一个简单应用
    UE4中如何使物体始终朝向摄像头?
    响应式Web设计
    Nodejs的express使用教程
    安装express遇到的问题
    致自己
    上传文件的方法
  • 原文地址:https://www.cnblogs.com/shadow21/p/2763158.html
Copyright © 2011-2022 走看看